三维旋转困境



好的,希望我能全面地解释这个…如果我把你弄糊涂了,请原谅我…

我使用的是一个旧的令人讨厌的引擎,它只使用局部空间对对象应用旋转矩阵。

我有一个文本工具,允许用户(非程序员)创建对象并旋转它们(更改不是实时应用的)。

如果只旋转1个轴,旋转将会很好,但是当他们指定旋转2个轴(例如关于UP和RIGHT的旋转)时,当然会变得歪斜,因为关于UP的旋转是使用局部UP而不是全局(即世界)UP。

例如,假设我们有一个相机(0,0,0)看着平面(0,-5,0)的宽边。该工具的用户想要旋转该平面的X(右)45度,并围绕全局向上45度。好吧,我没有办法让他们简单地指定两个旋转值,并获得他们想要的旋转关于全局向上…它们需要通过反复试验来指定关于FORWARD(在本例中为Y)的旋转,以保持对象"直立"。

我想知道的是:我如何将关于2轴的旋转转换成关于3轴的旋转,假设关于UP的旋转是全局的UP,并且仍然获得用户想要的旋转

每个对象的局部坐标帧都是固定的,因此一旦您将对象的局部轴从全局轴旋转,围绕全局轴的旋转(例如全局向上)就变成了相对于局部轴的任意旋转。

所以如果你想让用户全局向上旋转,你需要找出正确的旋转/平移组合关于对象的局部轴。

谷歌搜索rotation about arbitrary axis出现了这个链接:

http://inside.mines.edu/gmurray/ArbitraryAxisRotation/

相关内容

  • 没有找到相关文章

最新更新