2011-04-02 25 views

回答

1

不,glTranslatef()設置一個矩陣,確保在將此語句翻譯爲給定量之後繪製的對象全部。如果您只想翻譯(定位)一個對象,請使用以下內容。

glLoadIdentity() 
glPushMatrix(); 
glTranslatef(0,10,-5); 
//DrawObjectOne 
glPopMatrix(); 
//DrawObjectTwo 

此代碼執行以下操作:

首先它加載同一性矩陣,這字面意思在位置,旋轉或比例沒有變化。然後將一個新矩陣推到矩陣堆棧上。對當前WorldMatrix的所有更改都會一直保持,直到glPopMatrix()被調用。

我們通過設置(0,10,-5)的平移來修改當前的世界矩陣,然後我們在該位置繪製該對象。

現在我們彈出當前世界矩陣,當前世界矩陣現在消失了,我們返回到前一個WorldMatrix(這是單位矩陣)

然後我們得出物體的兩個,這是剛剛被在(0繪製,0,0)。

+0

謝謝,我明白了。那麼怎樣才能得到三維座標的當前位置? – 2011-04-02 06:53:54

+0

WorldMatrix * trianglePosition會產生確切的3D位置,但您可能需要爲此實現自己的Matrix代數。順便說一句,請標記這個問題作爲答案,如果它幫助你;)。 – 2011-04-02 06:58:12