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() 即可。