• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-38  評論-23  文章-0  trackbacks-0

            nehe教程里頭,該課的內容是利用多邊形來組成三維圖形.我只實現了一個利用三角形繪制四面體,而其中的正方體則是采用glut工具庫自帶的函數繪制的

            #include 
            "openglglut.h"

            /*
            **  使用四個三角形繪制成一個四面體,繞Y軸旋轉
            **  使用glut工具庫繪制一個灰色正方體,繞XYZ軸旋轉
            **  nehe教程里頭是采用繪制正方體的6個面來繪制正方體的.
            *
            */

            GLfloat yRot
            =0;                                 /** 四面體繞Y軸旋轉角度*/
            GLfloat xRot
            =0;                                 /** 正方體繞xyz軸旋轉角度*/
            int main(int argc,char** argv)
            {
                createWindow(
            "opengl lesson_5",&argc,argv); /** 初始化并創建窗口*/

                glutDisplayFunc(glutDisplay);               
            /** 注冊重繪函數*/
                glutIdleFunc(glutIdle);                     
            /** 注冊空閑回調函數*/
                glutReshapeFunc(glutResize);                
            /** 注冊窗口調整函數*/
                glutSpecialFunc(glutSpecial);               
            /** 注冊特殊按鍵窗口*/
                glutKeyboardFunc(glutKeyboard);             
            /** 注冊鍵盤處理函數*/

                InitOpenGL();                               
            /** 初始化opengl*/

                glutMainLoop();                             
            /** 仿真循環*/
            }

            void glutDisplay(void)                          /** 重繪函數*/
            {
                glClear(GL_COLOR_BUFFER_BIT 
            | GL_DEPTH_BUFFER_BIT);/** 清除顏色緩存和深度緩存*/
                
                glLoadIdentity();                           
            /** 初始化當前矩陣為單位矩陣*/

                glPushMatrix();                             
            /** 保存當前矩陣*/
                glTranslatef(
            -1.5,0.0,-6.0);                /** 往左移動和往屏幕內部移動,繪制四面體*/
                glRotatef(yRot,
            0.0,1.0,0.0);                /** 四面體繞y軸旋轉yRot角度*/
                
                glBegin(GL_TRIANGLES);                      
            /** 通過繪制四個三角形組成四面體*/
                    glColor3f(
            1.0f,0.0f,0.0f);              /** 紅色*/
                    glVertex3f( 
            0.0f1.0f0.0f);          /** 三角形的上頂點 (前側面)*/
                    glColor3f(
            0.0f,1.0f,0.0f);              /** 綠色*/
                    glVertex3f(
            -1.0f,-1.0f1.0f);          /** 三角形的左下頂點 (前側面)*/
                    glColor3f(
            0.0f,0.0f,1.0f);              /** 藍色*/
                    glVertex3f( 
            1.0f,-1.0f1.0f);          /** 三角形的右下頂點 (前側面)*/

                    glColor3f(
            1.0f,0.0f,0.0f);                /**紅色*/
                    glVertex3f( 
            0.0f1.0f0.0f);            /**三角形的上頂點 (右側面)*/
                    glColor3f(
            0.0f,0.0f,1.0f);              /**  藍色 */
                    glVertex3f( 
            1.0f,-1.0f1.0f);          /** 三角形的左下頂點 (右側面)*/
                    glColor3f(
            0.0f,1.0f,0.0f);              /** 綠色*/
                    glVertex3f( 
            1.0f,-1.0f-1.0f);         /** 三角形的右下頂點 (右側面)*/

                    glColor3f(
            1.0f,0.0f,0.0f);              /** 紅色*/
                    glVertex3f( 
            0.0f1.0f0.0f);          /** 三角形的上頂點 (后側面)*/
                    glColor3f(
            0.0f,1.0f,0.0f);              /** 綠色*/
                    glVertex3f( 
            1.0f,-1.0f-1.0f);         /** 三角形的左下頂點 (后側面)*/
                    glColor3f(
            0.0f,0.0f,1.0f);              /** 藍色*/
                    glVertex3f(
            -1.0f,-1.0f-1.0f);         /** 三角形的右下頂點 (后側面)*/

                    glColor3f(
            1.0f,0.0f,0.0f);              /** 紅色*/
                    glVertex3f( 
            0.0f1.0f0.0f);          /** 三角形的上頂點 (左側面)*/
                    glColor3f(
            0.0f,0.0f,1.0f);              /** 藍色*/
                    glVertex3f(
            -1.0f,-1.0f,-1.0f);          /** 三角形的左下頂點 (左側面)*/
                    glColor3f(
            0.0f,1.0f,0.0f);                /** 綠色*/
                    glVertex3f(
            -1.0f,-1.0f1.0f);            /**三角形的右下頂點 (左側面)*/
                glEnd();                                    
            /**  四面體繪制結束*/
                
                glPopMatrix();                              
            /** 恢復當前矩陣為保持前*/

                glTranslatef(
            1.5,0.0,-6.0);                 /** 往右移動和往屏幕內部移動,繪制正方體*/
                glRotatef(xRot,
            1.0,1.0,1.0);                /** 正方體繞XYZ軸旋轉*/ 

                glColor3f(
            0.5,0.5,0.5);                     /** 鑒于glut中提供了正方體的繪制*/
                glutSolidCube(
            1.732);                       /** 故使用glut中方法繪制正方體*/

                glutSwapBuffers();

            }

            void glutIdle(void)                             /** 回調函數*/
            {
                yRot
            +=0.5;                                  /** 繞y軸旋轉角度遞增*/
                xRot
            -=0.5;                                  /** 繞x軸旋轉角度遞減*/
                glutPostRedisplay();                        
            /** 使得函數完成后進行窗口重繪*/
            }


            void glutKeyboard(unsigned char key,int x,int y)
            {
                
            switch(key)
                
            {
                    
            case 27:                                /** Esc按鍵按下后退出程序 */
                        exit(
            0);
                        
            break;
                    
            default:
                        
            break;
                }

            }

            最終顯示結果是:


            末尾總結:
            opengl當中,復雜的圖形總是通過最基本的圖元組成,當然繪制起來也不見得會非常的簡單.通常很多復雜的模型等大多數是通過建模軟件生成的.
            這節課當中,并沒有多大的內容,基本用到都是之前lesson當中學習過的.
            posted on 2009-07-17 18:24 米游 閱讀(555) 評論(0)  編輯 收藏 引用 所屬分類: OpenGL/OSG
            一级做a爰片久久毛片16| 久久精品国产亚洲AV蜜臀色欲| 日韩精品久久久久久免费| 日韩一区二区久久久久久| 久久久久久国产精品免费无码 | 国产亚洲精午夜久久久久久| 麻豆AV一区二区三区久久| 内射无码专区久久亚洲| 久久国产热这里只有精品| 国产精久久一区二区三区| 久久99亚洲综合精品首页| 精品国产婷婷久久久| 久久最新免费视频| 精品久久久久久国产| 无码国内精品久久人妻| 精品久久久久久无码专区不卡| 久久综合国产乱子伦精品免费| 亚洲精品无码久久久影院相关影片| 2020国产成人久久精品| 大香伊人久久精品一区二区| 久久久www免费人成精品| 国内精品人妻无码久久久影院导航| 久久精品人人做人人爽97| 国产成人精品综合久久久久| 久久夜色精品国产网站| 91精品国产综合久久四虎久久无码一级 | 999久久久免费精品国产| 久久精品国产只有精品2020| 国产亚洲色婷婷久久99精品91| 亚洲色欲久久久久综合网 | 香港aa三级久久三级老师2021国产三级精品三级在 | 精品国产一区二区三区久久久狼| 国产韩国精品一区二区三区久久| 国产亚洲精午夜久久久久久| 精品国产乱码久久久久软件| 久久亚洲精品视频| 久久99国产精品久久99小说| 久久精品九九亚洲精品天堂| 人人妻久久人人澡人人爽人人精品 | www.久久99| 久久夜色精品国产亚洲|