1

我正在尝试围绕 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
4

2 回答 2

2

如果这是关于您要始终围绕同一点旋转的对象(例如门),那么最简单的方法实际上是更改对象的枢轴点。

这可以由您的艺术家在 Maya/Max/Blender 中轻松完成。

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

于 2012-03-23T10:55:28.860 回答
0

从观点来看,基本技术matrix calculus是:

  • 将模型移动到该点

  • 旋转模型

首先,您可以尝试执行Translate(...),之后Rotate(...),一次成功,可以通过使用一个带有平移和旋转数据的单个矩阵进行优化,因此只需一次Transform(...)调用即可执行您想要的

希望这可以帮助。

于 2012-03-23T10:11:32.230 回答