给定 3D 空间中的两个点 A 和 B,我得到一条线段 LS。给定两个新点 A' 和 B' 产生线段 LS',我需要找到将 LS 转换为 LS' 的转换矩阵。假定线段的长度相等。
我有一个关于如何计算矩阵的理论,但我真的很想从你们优秀的人那里得到一些反馈,看看它是否是一个好的理论,或者是否存在一些更好的方法。
这是我的算法:
- 设 L 和 L' 是平行于 LS 和 LS' 的线
- 找到 L 与 L' 相交的点 P
- 求 L 和 L' 之间的角度 V
最终的变换矩阵将是:
平移(-P) * 旋转(V) * 平移(p)
一些好奇的背景:我在 XNA 中构建这个,虽然数学问题应该很笼统。线段是更大的连接线段结构的一部分。对于每个片段,我将预先计算每个动画帧的变换矩阵。