2012-03-23 37 views
1

我想在Ogre3D中的自定义中心点周围旋转一个节点,但我似乎无法找到一种方法来做到这一点。 我已经研究过四元数和矩阵,但他们似乎没有做我想做的事情(但说实话,我不太确定我完全理解他们)。Ogre3D:相对于自定义中心点的旋转

下图说明了我想要的东西(从顶部看到的墙上的'门')。 'o'表示中心点(铰链),'x'表示门,'='表示墙。

- Original position 
- What I get:   What I want: 

    == x x o x x ==  == x o x x x == 

- After a 90 degree clockwise rotation: 
- What I get:   What I want: 

     x 
     x     x 
    ==  o  ==  == o  == 
     x     x 
     x     x 
          x 
+0

为什么不结合过渡和旋转? – 2012-03-23 10:09:19

回答

2

如果这是关于一个对象,你想总是围绕同一个点旋转(就像一个门),最简单的方法实际上是改变对象的轴心点。

这可以很容易地由您的艺术家在Maya/Max/Blender中完成。

或者您可以将门附加到所需位置的额外场景节点。然后旋转额外的场景节点。这有好处,你可以做任何事情从食人魔。

+0

听起来很有希望。我们将试一试。 – 2012-03-23 11:13:15

0

从视图matrix calculus点的基本方法是:

  • 移动模式,以点

  • 旋转模型

首先,你可以尝试执行Translate(...),之后Rotate(...),一个ti我可以通过使用一个单一矩阵来优化,可以通过平移和旋转数据进行优化,因此可以通过一个单独的Transform(...)来执行您想要的操作。致电

希望这会有所帮助。