我有一个对象(圆锥体),它的底在顶点X1上(圆锥体的圆底在X1上以它的中心为中心),并指向Oz。我想旋转它,这样它就会指向给定的顶点X2。我尝试了许多组合,我做了很多计算,但还是不能让它工作。如果你能使用C++ OpenGL function glRotatef给出一个答案,那就太好了,但也希望能有一个通用的答案。我现在正在一个圆锥体上尝试,但它应该可以在任何网格上工作。到目前为止,我有这样的想法:
我正在尝试实现基于鼠标输入的Cannon.Body的旋转。通过使用(Cannon) Three FPS示例进行演示,您可以了解问题所在。如果移动鼠标,则会将四元数应用于身体,并计算适当的速度。现在旋转180度,X轴上的旋转现在以某种方式被取消。向上移动鼠标时,球体将向下旋转。
如何解决这样的问题呢?也许我在其他地方做错了什么,这可能会扰乱四元数?