在OpenGL中,我試圖圍繞一個點旋轉攝像頭,攝像頭距離點距離r,並在旋轉時面向點。換句話說,我希望攝像機沿圓周以半徑r從中心移動,相機朝向圓周任意點的中心。可以說在三維空間中圓的中心是(3,0,3);而在三維空間中,圓的中心是(3,0,3)。OpenGL圍繞一個點旋轉攝像頭
我已經試過:
// move to center of circle
glTranslatef(-3, 0, -3)
// move a distance away from the circle
glTranslatef(0, 0, r);
// rotate along the y "up" axis
glRotatef(CameraAngle, 0, 1, 0);
其中CameraAngle是度的情況下繞了一圈移動。
我的最終結果是相機仍然沿原點旋轉,而不是圓的中心。任何人都可以幫我解決這個問題嗎?謝謝!
我已經做了使用「四元數原型」(我的Vector類中的一個簡單的方法,其中圍繞其他矢量旋轉一個)。看起來更加靈活=) – shybovycha 2010-11-21 19:52:40