如何找到转换矩阵对齐两条线?

时间:2010-03-05 09:22:39

标签: animation matrix xna transformation

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

我有一个关于如何计算矩阵的理论,但我真的希望你能得到一些关于它是否是一个好理论或是否存在更好方法的优秀人士的反馈。

这是我的算法:

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

    翻译(-P)* rotate(V)* translate(p)

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

1 个答案:

答案 0 :(得分:2)

我猜,

而不是找到交叉转换A到A'就足够了。然后你可能需要2次旋转,一次是在同一平面上制作两条线,另一条是实际对齐它们。