(資料圖)
1、glPushMatrix()將當前矩陣壓入棧中,當前矩陣不清零,其下的操作及顯示在當前的矩陣下繼續(xù)進行,在使用glPopMatrix()后,當前的矩陣恢復到調用glPushMatrix()之前,在兩者之間的各種變換不在起作用。
2、 glPushMatrix、glPopMatrix操作其實就相當于棧里的入棧和出棧。
3、 例如你當前的坐標系原點在你電腦屏幕的左上方。
4、現在你調用glPushMatrix,然后再調用一堆平移、旋轉代碼等等,然后再畫圖。
5、那些平移和旋轉都是基于坐上角為原點進行變化的。
6、而且都會改變坐標的位置,經過了這些變化后,你的坐標肯定不再左上角了。
7、 那如果想恢復怎么辦呢?這時就調用glPopMatrix從棧里取出一個“狀態(tài)”了,這個狀態(tài)就是你調用glPushMatrix之前的那個狀態(tài)。
8、就如很多opengl的書上所講:調用glPushMatrix其實就是把當前狀態(tài)做一個副本放入堆棧之中。
本文到此分享完畢,希望對大家有所幫助。
Copyright @ 2015-2022 中南網版權所有 備案號: 浙ICP備2022016517號-4 聯(lián)系郵箱:514 676 113@qq.com