在我的程序中,我在屏幕上有一個矩形圖,我使用gluLookAt
更改了方向,它總是一直看着窗口的中心。
在應用程序中連續調用的draw
函數中,我在程序中有一些狀態。清除數字的外觀
draw function
{
//if condition 1
gluLookAt(0,0,0); //look At the origin of the window.
//if condition 2
glTranslatef(20, 10, 10);//go to some point and STOP looking At 0,0,0
//if condition 3
glTranslatef(point);
glRotatef()
glTranslate(-point)
}
該代碼運行良好的第一個if condition
和該圖保持適當尋找原點。當我在第二個if condition
的申請中更改國旗時,我得到了譯文,但是我的形狀仍然繼續查看原文。
我該如何做到這一點?我希望形狀是直的,因爲任何普通的矩形都是在沒有lookAt的情況下繪製的。
這裏的圖不一定是矩形。它也可能是其他形狀
所有這些矩陣運算與當前矩陣相乘取代目前的矩陣。他們不會爲您創建一個新的,乾淨的矩陣。嘗試在每個條件開始處放置glLoadIdentity()。 – Aeluned
@Aeluned:我嘗試添加glLoadIdentity,但它會刪除我的翻譯效果,並在第二條件中調用調用。這是自然的還是我錯過了什麼?在第二個條件下,如果條件現在不發生,翻譯成最終點的形狀 – user1240679
如果條件(條件2),我看不到輪轉調用。 glLoadIdentity完成所說的事情。它將單位矩陣加載到當前矩陣中。這是一個沒有定義轉換的矩陣。這裏的代碼太少,我不知道你想做什麼。 但是我可以告訴你,你的問題的解決方案將涉及glLoadIdentity和glPush/Pop矩陣的組合。我建議你看看這些,如果你不知道他們做什麼。 – Aeluned