2013-10-11 192 views
0

我的對象在x軸上從A移動到B,並且除此之外沒有任何對象轉換。現在,在移動時,我想圍繞y軸旋轉它,並且運動會相應地改變,我的意思是,如果從-x移動到+ x軸時將它向右旋轉,它應該朝z軸方向的近平面移動。我正在使用透視投影。我在循環中修改了gltranslatef中的變量,然後我使用glscalef來縮放由分層結構構成的整個對象。現在我試着下面的代碼來實現預期的結果,但它不能正常工作。圍繞中心旋轉3D對象

glTranslatef(move, 0, 0); 

// If I comment these 3 lines, it does not affect the output 
    glTranslatef(-move, 0, 0); 
glRotatef(rotate,0,1,0); 
glTranslatef(move, 0, 0); 

glScalef(0.2, 0.2, 1.0); 
+0

你不應該使用被棄用的函數,所有這4個函數都被棄用,試着學習新的更好的方法來做這些事情。 – Vallentin

+0

我只能使用上述調用 – debonair

回答

0

你的描述不夠準確。 一方面你提到圍繞Y軸旋轉它。另一方面,它應該走向近平面。

重要的問題是:你如何設置你的投影矩陣?通常,您在代碼中嘗試實現的內容看起來不錯。但是,你可能已經建立了一個正交投影矩陣。

+0

更新的問題來實現它。 – debonair

+0

因此,您試圖實現的是: 您有一個可沿x軸移動但在從左到右移動時更接近相機的繪圖? 如果不是,您的相機指向哪裏? – 1FpGLLjZSZMx6k

+0

我的相機沿z軸。假設你要走上一條路,而你想向右轉並繼續往那個方向前進。 – debonair