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