【发布时间】:2014-04-30 14:15:55
【问题描述】:
假设我有 2 个 3D 向量,每个向量都描述 3D 空间中的一个方向(或旋转,但我不确定该术语是否正确)。我将如何计算两个向量之间的差异作为欧拉角?也就是说,如果我将角度应用于第一个向量,它会旋转到等于另一个?我了解欧拉角如何存在问题并且依赖于实现,但我不知道这对我这样的问题有什么影响。
澄清一下,当我说“3D 矢量”时,我指的是您在大多数 3D 建模包或 Unity(这是我正在使用的)中获得的“平移”小工具。
编辑:实际上我只是回顾了我正在使用的“向量”,我所说的并不完全正确。我实际上有 6 个向量,每个旋转 3 个。每个向量都是 3D 空间中从旋转中心偏移的位置。这可能会让一个已经很困难的问题变得几乎不可能,对吧?
附加信息:好的,所以我已经弄清楚了我真正想问的问题(因为这个问题做得很糟糕),它更适用于 Unity ,所以我问了一个更具体的 Unity 问题over on Unity Answers。
我通常不理解网上发布的数学公式,所以 C++ 风格的伪代码对我来说是最有帮助的。
任何帮助将不胜感激,如果我的问题缺少某些信息,请询问更多:)
【问题讨论】:
-
当你说你有 6 个向量时?你的意思是你有 2 个正交向量集,因为你有 2 个完全定义的矩阵,并且你想要从一个空间到另一个空间的变换矩阵,这被分解为欧拉旋转。你使用什么轮换顺序?
-
.... 是英文的?我不知道你刚才说了什么。我可能会在我的问题中使用某些正确的术语,但最好是假设我对...一无所知......好吧,任何事情。
标签: vector 3d rotation unity3d angle