名前空間sharpGLTest02 { パブリック 部分 クラスをForm1:フォーム { プライベート int型の MTYPE = 3 ; 公共のForm1() { のInitializeComponent(); } // 初始化 プライベート ボイド openGLControl1_OpenGLInitialized(オブジェクト送信者、のEventArgs電子) { } // 调整 プライベート ボイド openGLControl1_Resize(オブジェクト送信者、E EventArgs)を { } // 画图 プライベート ボイド openGLControl1_OpenGLDraw(オブジェクト送信者、PaintEventArgsのE) { SharpGL.OpenGL GL = この.openGLControl1.OpenGL。 gl.ClearColor(0、0、0、1 )。 // 清除深度缓存 gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT)。 スイッチ(MTYPE) { ケース 0 : translateSample(GL)。 破ります; ケース 1: rotateSample(GL)。 破ります; ケース 2 : scaleSample(GL)。 破ります; ケース 3 : originSample(GL)。 破ります; } gl.Finish()。 gl.Flush(); // 强制刷新 } プライベート ボイドoriginSample(SharpGL.OpenGLのGL) { gl.LoadIdentity()。 gl.Translate(0F、0F、 - 1F)。 drawPT(GL)。 //gl.LoadIdentity(); // gl.Translate(0F、1F、-1F)。 // drawPT(GL); } プライベート ボイドscaleSample(SharpGL.OpenGLのGL) { gl.LoadIdentity()。 // 缩放 // gl.Scale(1F、1F、1F)。 gl.Scale(1F、2F、1F)。 gl.Translate(0、0、 - 9F)。 drawPT(GL)。 gl.LoadIdentity(); gl.Scale(5F、1F、1F)。 // gl.Translate(0、1、-9f)。 gl.Translate(0、2、 -9F); drawPT(GL)。 } プライベート ボイドrotateSample(SharpGL.OpenGLのGL) { gl.LoadIdentity()。 // 旋转 gl.Rotate(0、0、45 ); gl.Translate(0、0、 - 3F)。 drawPT(GL)。 // gl.Rotate(0、0、45); // gl.Translate(-1、1,0f)。 // drawPT(GL); } プライベート ボイドtranslateSample(SharpGL.OpenGLのGL) { //現在指定されたマトリックスをリセットして、画面の中央に移動させ、単位行列、現在のユーザ座標系の原点である gl.LoadIdentity(); // gl.LoadIdentity()があるので、原点にポイントを変換し、(位置まで軸座標変換0、0、-3)、そしてこれが(0,0,0)点位置に対して上述した gl.Translate(0F、0F、 - 3F); drawPT(GL); gl.LoadIdentity(); // GL。翻訳(0F、0.5F、-3f); gl.Translate(0F、1F、 - 3F); // gl.Translate(0F、1.5F、-3f); drawPT(GL); } プライベート ボイドdrawPT(SharpGL。 GLのOpenGL) { gl.PointSize(5F); gl.Begin(OpenGL.GL_TRIANGLES); { gl.Vertex(0.0f、0F、は0.0f ); gl.Vertex( - 1.0F、-1F、は0.0f ); gl.Vertex(1.0F、-1F、は0.0f ); } gl.End(); } // ボタンのクリックイベント 専用 のボイド btnTranslate_Click(オブジェクト送信者、EventArgsのE) { スイッチ(((ボタン)SENDER).nameの) { ケース " btnTranslate " : MTYPE = 0 ; BREAK; 場合 " btnRotate " : MTYPE = 1 。 破ります; 場合 " btnScale " : MTYPE = 2 。 破ります; ケース " btnOrigin " : MTYPE = 3 ; 破ります; } } } }