SharpGL學習基礎篇--座標系中的三角形

1:opengGL做立體圖,是在三維座標系中,多次試驗,弄清三維座標系方向,畫三角形的原理及成像機制。代碼解釋一波。

            //實例化OpenGL對象
            OpenGL gl = new OpenGL(); 
 
            //清空Depth和Color緩存      
            gl.Clear(OpenGL.GL_DEPTH_BUFFER_BIT | OpenGL.GL_COLOR_BUFFER_BIT);
            
            //加載座標系在屏幕畫布中間 
            //右手座標系:中指對己爲正Z、食指朝天爲正Y、拇指向右爲正X
            gl.LoadIdentity(); 
                          
            gl.Begin(OpenGL.GL_TRIANGLES);    //開始畫三角形
            {
                gl.Vertex(1.0f, 0.0f, -10.0f);  //畫三角形原理:兩個向量及向量起點
                gl.Vertex(2.0f, 0.0f, -10.0f);  //直接夾的區域即爲所做三角形
                gl.Vertex(1.0f, -1.0f, -10.0f);
            }
            gl.End();    //必須要有結束符號

2:當使用諸如函數:gl.translate()、gl.rotate()時是對整個座標系,相對屏幕中心進行移動、旋轉等,接下若沒有使用gl.LoadIdentity() 函數的話,素有圖像都是在移動旋轉後的圖像畫的,與前一個座標系沒有關係。

      2.1在畫三角形時,若gl.Vertex(x,y,z)中的所有z座標都爲0的話,會導致看不見圖像,可能你已經畫出來了,但因爲視點問題,沒展示出來,這時候只需要將所有的z都減去一個合適的整數即可。

       2.2gl.translate(x,y,z)就是按當前座標,分別移動x,y,z個距離

       2.3gl.rotate(x,y,z)分別繞着三個軸,逆時針轉動x,y,z度。

3:正方形相當於兩個三角形拼接而成,每個點的先後順序對作圖結果有影響,要順時針或逆時針畫完,不能先畫對角線的點。

4:若平移後需要回到中心座標,調用gl.LoadIdentity() 即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章