首先,我已经做了很多谷歌搜索并检查了有关此的其他 stackoverflow 帖子,但无法获得有效的回复或工作代码片段。数学不是我的强项。
我需要一个例程来获取一个相机点(CX,CY,CZ)并将其围绕一个观察点(LX,LY,LZ)旋转三个旋转角度(RX,RY,RZ)。在某些我需要避免的情况下,使用欧拉旋转会导致万向节锁定。所以我听说过使用四元数。
我发现这可以将旋转转换为四元数 http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm
这从四元数转换回欧拉 XYZ 旋转 http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm
它们似乎工作正常,但我需要知道如何使用四元数围绕 LX、LY、LZ 旋转 CX、CY、CZ,然后返回新的 CX、CY、CZ 而不会出现万向节锁定问题。
关于这方面的内容太多了,我相信一个很好的解释和代码片段不仅会帮助我,而且会在未来帮助许多其他人。
因此,如果可以,请提供帮助。非常感谢。