2011-05-03 45 views
0

我正在寻找解决以下问题的方法:独立旋转约2个轴

我有一个球行进到屏幕的右上角。也就是说,它的速度向右和向上是相同的。

为了模拟它的旋转,它有一个沿X轴和Y轴的角速度 - 它们也是相等的。

迄今为止,这工作正常。我的问题是现在正确旋转展出的球:我使用OpenGL和一个简单的球体。现在

我幼稚的方法是使用

glRotate(rx, 1, 0, 0); // rotate about x axis 
glRotate(ry, 0, 1, 0); // rotate about y axis 

但正如我预期这不起作用:第二旋转取决于第一个。第二个想法,这是按照我习惯的方式工作的。但现在我正在寻找解决方案,通过独立应用两个旋转来正确旋转我的球。

我也试过使用四元数,但没有成功。我甚至不确定我是否完全错误,我的方法是“旋转一些关于x的程度,然后关于y的一些关系”,这是有道理的。

任何“启示”,不胜感激。

谢谢!

+0

你是怎么尝试使用不起作用的四元数的?如果你的实现是正确的,那么四元数应该总是正确 – 2011-05-03 17:50:51

+0

http://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula围绕任意轴旋转的轴角公式。 – legends2k 2013-01-30 19:29:13

回答

0

glRotate(rr, 1,1,0);在那种情况下你绕着任意矢量(1,1,0)旋转。