目前我正在试图使用OpenGL(使用SDL)来绘制一个立方体的位置,我离开单击屏幕,然后去指向我右键单击屏幕的位置。寻找角度的X,Y,Z轴的三维 - 的OpenGL/C++
我可以成功地借鉴使用gluUnproject在我想要的位置的立方体 - 意义我已经知道我的立方体位于坐标。
但是我不知道如何计算都使我的立方体点在新位置需要的角度。
当然我仍在使用gluUnproject找到我右键点击的坐标,但我只知道如何绕Z轴使用2D图形旋转。例如之前,如果我想围绕Z轴旋转一个四边形(当然,这将是一个自上而下的视图,其中Z轴仍在“穿过”屏幕)2D中我会做类似:
angle = atan2(mouseCoordsY - quadPosY, mouseCoordsX - quadPosX);
glRotatef(angle*180/PI, 0, 0, 1);
我的问题是,我该如何去做这个3D?
- 我是否需要像上面那样计算每个轴的角度?
- 如果让我怎么计算绕X轴和Y轴旋转的角度?
- 如果不是,我应该用什么方法来达到我想要的效果?
任何帮助是极大的赞赏。
如何指定Z坐标每个鼠标点击来表示?如果你只设置为0,那么2D几何就足够了,我猜这不是你的意图。 – 2010-11-10 10:09:22
在3D空间中单击应该定义一个光线,而不是一个点。我很想知道你是如何实现定位立方体的。 – tafa 2010-11-10 10:15:10
@Marcelo Cantos:如果我错误地理解了你的问题,请原谅我,但我对此很陌生,所以虽然我想我知道你在问什么,但我仍然可能有错误的想法。基本上,如果我的立方体在(100,200,300),并且点击(400,500,600),我需要找到我需要旋转立方体的角度,以便让它看到第二组坐标。 – 2010-11-10 10:15:46