• <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>

            Shuffy

            不斷的學(xué)習(xí),不斷的思考,才能不斷的進(jìn)步.Let's do better together!
            posts - 102, comments - 43, trackbacks - 0, articles - 19

            《基于MFC的OpenGL編程》Part 14 Quadrics

            Posted on 2010-03-31 20:49 Shuffy 閱讀(345) 評論(0)  編輯 收藏 引用 所屬分類: MFC,OpenGL
                  本文在11篇文章的基礎(chǔ)上,為其加入顯示各種二次曲面的代碼;

                  Quadrics

            Every quadric has a few settings associated with it. We have to create a quadric first and then customize its settings to render the shape we want. The gluNewQuadric function creates a state variable that describes the current drawing style, orientation, lighting mode, texturing mode and the callback functions. Once we use this function to create a new quadric, we can customize the drawing of shapes by changing its state using functions such as

            gluQuadricDrawStyle - which selects the type of OpenGL drawing primitives that are used to drw the shape.

            gluQuadricOrientation - which controls the direction of the lighting normals.

            gluQuadricNormals - which controls the generation of lighting normals.

            gluQuadricTexture - which generates texture coordinates automatically for the quadric.

            1,CCY457OpenGLView類中加入下列變量,用來表示二次曲面類型:

                //Quadric
                GLuint m_Quadric;

            2,加入四個控制二次曲面類型的菜單項及其事件處理函數(shù)

            void CCY457OpenGLView::OnQuadricSphere() 
            {
            //球體
                m_Quadric = 0;
                InvalidateRect(NULL,FALSE);
            }
            void CCY457OpenGLView::OnUpdateQuadricSphere(CCmdUI* pCmdUI) 
            {
                
            if(m_Quadric == 0)
                    pCmdUI
            ->SetRadio(TRUE);
                
            else
                    pCmdUI
            ->SetRadio(FALSE);    
            }
            void CCY457OpenGLView::OnQuadricCone() 
            {
            //圓錐
                m_Quadric = 2;    
                InvalidateRect(NULL,FALSE);
            }
            void CCY457OpenGLView::OnUpdateQuadricCone(CCmdUI* pCmdUI) 
            {
                
            if(m_Quadric == 2)
                    pCmdUI
            ->SetRadio(TRUE);
                
            else
                    pCmdUI
            ->SetRadio(FALSE);    
            }
            void CCY457OpenGLView::OnQuadricCylinder() 
            {
            //柱體
                m_Quadric = 1;
                InvalidateRect(NULL,FALSE);
            }
            void CCY457OpenGLView::OnUpdateQuadricCylinder(CCmdUI* pCmdUI) 
            {
                
            if(m_Quadric == 1)
                    pCmdUI
            ->SetRadio(TRUE);
                
            else
                    pCmdUI
            ->SetRadio(FALSE);    
            }
            void CCY457OpenGLView::OnQuadricDisk() 
            {
            //圓盤
                m_Quadric = 3;
                InvalidateRect(NULL,FALSE);
            }
            void CCY457OpenGLView::OnUpdateQuadricDisk(CCmdUI* pCmdUI) 
            {
                
            if(m_Quadric == 3)
                    pCmdUI
            ->SetRadio(TRUE);
                
            else
                    pCmdUI
            ->SetRadio(FALSE);
            }
            void CCY457OpenGLView::OnQuadricPartialdisk() 
            {
            ////半圓盤
                m_Quadric = 4;
                InvalidateRect(NULL,FALSE);
                
            }
            void CCY457OpenGLView::OnUpdateQuadricPartialdisk(CCmdUI* pCmdUI) 
            {
                
            if(m_Quadric == 4)
                    pCmdUI
            ->SetRadio(TRUE);
                
            else
                    pCmdUI
            ->SetRadio(FALSE);    
            }

            3,繪制函數(shù)修改如下:

            void CCY457OpenGLView::RenderScene ()
            {
            //繪制函數(shù)
                    glTranslatef(0.0f,0.0f,-5.0f);
                    glRotatef(m_xRot,
            1.0f,0.0f,0.0f);
                    glRotatef(m_yRot,
            0.0f,1.0f,0.0f);
                    glEnable(GL_TEXTURE_2D);
                    glBindTexture(GL_TEXTURE_2D,m_Texture[
            0]);
                    GLUquadricObj
            * obj;
                    obj 
            = gluNewQuadric();
                    gluQuadricNormals(obj, GLU_SMOOTH);
                    gluQuadricTexture(obj, GL_TRUE);
                    
            switch(m_Quadric)
                    {
                        
            case 0:    gluSphere(obj, 12020);
                                
            break;
                        
            case 1:    gluCylinder(obj, 1132020);
                                
            break;
                        
            case 2: gluCylinder(obj, 0.1132020);
                                
            break;
                        
            case 3: gluDisk(obj, 0.512020);
                                
            break;
                        
            case 4: gluPartialDisk(obj, 0.51202010180);
                                
            break;
                    }
                    glDisable(GL_TEXTURE_2D);
            }

             

            作者:洞庭散人

            出處:http://phinecos.cnblogs.com/    

            本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
            原文鏈接:http://www.cnblogs.com/phinecos/archive/2008/11/06/1328269.html
            99久久国产亚洲高清观看2024 | 久久综合给合久久狠狠狠97色69| 久久国产成人| 99久久国产综合精品麻豆| 久久综合色区| 久久久91人妻无码精品蜜桃HD | 久久久久久国产a免费观看不卡| 久久久久国产精品三级网| 2020久久精品国产免费| 久久午夜电影网| 色偷偷888欧美精品久久久| 欧美一级久久久久久久大| 精品国产91久久久久久久| 99久久精品影院老鸭窝| 久久99国产乱子伦精品免费| 欧美日韩成人精品久久久免费看| 日韩久久久久中文字幕人妻| 欧美麻豆久久久久久中文| 久久婷婷五月综合97色直播| 亚洲国产成人久久精品99| 精品国产乱码久久久久久呢 | 中文字幕无码久久人妻| 久久人与动人物a级毛片| 亚洲AV无码久久精品成人| 精品九九久久国内精品| 女人高潮久久久叫人喷水| 久久人人爽爽爽人久久久| 久久99久久无码毛片一区二区| 久久精品国产亚洲AV不卡| 久久99国产精品久久| 综合久久精品色| 久久精品国产一区二区三区不卡| 久久精品成人免费观看97| 久久夜色精品国产欧美乱| 91精品无码久久久久久五月天| 国内精品久久久久久久久电影网 | 日韩欧美亚洲综合久久 | 国产精品一区二区久久不卡| 国产精品久久国产精品99盘 | 久久精品国产2020| 久久综合给久久狠狠97色|