第六講 堆疊操作
本節中的例子其結構和例1一樣,僅改變myDisplay和myReshape。
例4:利用堆疊繪製三個物體--一個綠色的茶壺,一個藍色的茶壺,一個紅色的立方體(部分程式碼)
執行後,我們可以看到左邊為一個綠色的茶壺,中間為藍色的茶壺,右邊為紅色的立方體,如圖四。現在我們註釋掉所有的glPushMatrix(); glPopMatrix();執行後我們會發現兩個茶壺重疊在一起,如圖五。這是因為glPushMatrix();glPopMatrix();使得坐 標轉換的原始座標都是最初始的座標。而將glPushMatrix(); glPopMatrix()註釋掉後,glTranslatef(5.0,0.0,0.0); glTranslatef(-5.0,0.0,0.0);兩行語句使得綠色茶壺回到了(0,0)就和藍色的茶壺重疊在一起。
除此之外還有很多堆疊操作,需要用時可以通過查MSDN或網路或有關書籍。
例4:利用堆疊繪製三個物體--一個綠色的茶壺,一個藍色的茶壺,一個紅色的立方體(部分程式碼)
void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); /*藍色茶壺*/ glPushMatrix(); glColor3f(0.0,0.0,1.0); glutSolidTeapot(1.5); glPopMatrix(); /*紅色立方體*/ glPushMatrix(); glTranslatef(5.0,0.0,0.0);//座標變換 glColor3f(1.0,0.0,0.0); glutSolidCube(1.0); glPopMatrix(); /*綠色茶壺*/ glPushMatrix(); glTranslatef(-5.0,0.0,0.0);//座標變換 glColor3f(0.0,1.0,0.0); glutSolidTeapot(1.0); glPopMatrix(); glFlush(); } void myReshape(GLsizei w,GLsizei h) { glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(80.0,(GLdouble)w/(GLdouble)h,1.0,20.0);//建立透視投影矩陣 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(0.0,0.0,-8.0); } |
執行後,我們可以看到左邊為一個綠色的茶壺,中間為藍色的茶壺,右邊為紅色的立方體,如圖四。現在我們註釋掉所有的glPushMatrix(); glPopMatrix();執行後我們會發現兩個茶壺重疊在一起,如圖五。這是因為glPushMatrix();glPopMatrix();使得坐 標轉換的原始座標都是最初始的座標。而將glPushMatrix(); glPopMatrix()註釋掉後,glTranslatef(5.0,0.0,0.0); glTranslatef(-5.0,0.0,0.0);兩行語句使得綠色茶壺回到了(0,0)就和藍色的茶壺重疊在一起。
除此之外還有很多堆疊操作,需要用時可以通過查MSDN或網路或有關書籍。
相關文章
- JS 堆疊JS
- java堆疊Java
- 堆疊圖
- 平衡堆疊
- 圖的深度優先遍歷[非堆疊、堆疊實現]
- 記憶體堆疊記憶體
- 堆疊的工作原理
- C#堆疊(Stack)C#
- C#中堆和堆疊的區別C#
- [golang]如何看懂呼叫堆疊Golang
- 華為裝置堆疊原理
- Thrift的網路堆疊
- C++堆疊詳解C++
- 泛型鏈式堆疊泛型
- 益智補劑:Stamets堆疊
- 圖的深度優先遍歷(堆疊實現和非堆疊實現)
- junkman 遠端堆疊監控
- 什麼是網路堆疊?
- Java 堆疊記憶體分配Java記憶體
- iOS crash 日誌堆疊解析iOS
- (js佇列,堆疊) (FIFO,LIFO)JS佇列
- z-index堆疊規則Index
- StackOverflowError堆疊溢位錯誤Error
- JS 資料型別和堆疊JS資料型別
- CSS之定位和堆疊屬性CSS
- SQL隱碼攻擊-堆疊注入SQL
- Java堆疊的區別有哪些Java
- QT分局管理:堆疊窗體(三)QT
- 如何:強化TCP/IP堆疊安全TCP
- 【原創】命令堆疊(二十七)
- android I/DEBUG堆疊資訊Android
- echarts 堆疊面積階梯圖Echarts
- 虛擬地址空間,堆疊,堆,資料段,程式碼段
- C中關於堆疊的總結
- information_schema.innodb_trx 查詢堆疊ORM
- 【matplotlib 實戰】--堆疊面積圖
- Python實現堆疊與佇列Python佇列
- 如何強化TCP/IP 堆疊安全教程TCP