代码之家  ›  专栏  ›  技术社区  ›  Peter Lillevold Rene

如何找到两条直线对齐的变换矩阵?

  •  0
  • Peter Lillevold Rene  · 技术社区  · 15 年前

    给定三维空间中的两点a和b,我得到一条线段ls。给定两个新点a'和b'产生线段ls',我需要找到将ls转换为ls的转换矩阵。假定线段的长度相等。

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

    我的算法是:

    1. 让我和我成为平行于ls和ls的直线
    2. 找到点p,在这里l和l相交
    3. 找出l和l之间的v角
    4. 最终的转换矩阵为:

      平移(-p)*旋转(v)*平移(p)

    好奇者的一些背景知识:我在xna中构建这个,尽管数学问题应该很一般。线段是连接线段的大型结构的一部分。对于每个片段,我将预先计算每个动画帧的变换矩阵。

    1 回复  |  直到 15 年前
        1
  •  2
  •   tafa    15 年前

    我想,不是找到一个交叉口,而是把A变成A就足够了。然后可能需要两个旋转,一个使两条线在同一平面上,另一个使它们实际对齐。