0

给定 3D 空间中的两个点 A 和 B,我得到一条线段 LS。给定两个新点 A' 和 B' 产生线段 LS',我需要找到将 LS 转换为 LS' 的转换矩阵。假定线段的长度相等。

我有一个关于如何计算矩阵的理论,但我真的很想从你们优秀的人那里得到一些反馈,看看它是否是一个好的理论,或者是否存在一些更好的方法。

这是我的算法:

  1. 设 L 和 L' 是平行于 LS 和 LS' 的线
  2. 找到 L 与 L' 相交的点 P
  3. 求 L 和 L' 之间的角度 V
  4. 最终的变换矩阵将是:

    平移(-P) * 旋转(V) * 平移(p)

一些好奇的背景:我在 XNA 中构建这个,虽然数学问题应该很笼统。线段是更大的连接线段结构的一部分。对于每个片段,我将预先计算每个动画帧的变换矩阵。

4

1 回答 1

2

我猜,与其找到将 A 转换为 A' 的交叉点就足够了。然后你可能需要 2 次旋转,一次使两条线在同一平面上,另一次使它们实际对齐。

于 2010-03-05T09:38:35.783 回答