目前我正在試圖使用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