【发布时间】:2014-07-31 15:39:56
【问题描述】:
现在我很困惑,我不确定我的向量数学了。我有一个 Matrix4: MatrixA 代表一个对象(传感器立方体)世界变换。我想放置这个对象,以便它的正向指向与给定的标准化 Vector3: VecA 相同的方向。我还想从给定点沿 VecA 的方向平移对象(即 4 个单位):VecB(平移部分工作,使用相同的方向向量,VecA)
我已经尝试了所有我能想到的方法,包括 rotate()+translate()、setToWorld()、setToLookAt()、setToRotation()、手动编辑 Matrix4 的值(第 3 列)(这给出了最好的结果是旋转,但我得到一个倾斜的立方体)
我知道我的方向向量 (VecA) 没问题。 (通过打印它的值并通过使用相同的向量查看工作翻译来直观地确认它)
谁能告诉我应该怎么做才能达到我想要的结果,谢谢!
【问题讨论】:
-
变换矩阵没有“正向”,但可以包含旋转。因此,您还必须定义未旋转的前进方向。此外,通常有无数种可能的变换来表示单个向量的旋转(您的正向)。为了确保得到你想要的结果,你至少应该定义一个额外的(例如“向上”或“向右”)方向(旋转和非旋转)。
标签: matrix 3d rotation libgdx transform