C# OPENGL DEMO 旋轉彩色立方體OpenGL, SharpGL


static double xrot = 0.0;
        static double yrot = 0.0;
        static double zrot = 0.0;
        SharpGL.OpenGL gl;
        private void timer1_Tick(object sender, EventArgs e)
        {

            gl.Rotate(xrot, 1, 0, 0);
            gl.Rotate(yrot, 0, 1, 0);
            gl.Rotate(zrot, 0, 0, 1);
            xrot = xrot + 0.11;
            yrot = yrot + 0.11;
            zrot = zrot + 0.11;
        }
        private void openGLControl1_OpenGLDraw(object sender, SharpGL.RenderEventArgs e)
        {
            // 創建一個GL對象


             gl.Clear(OpenGL.Gl.COLOR_BUFFER_BIT|OpenGL.Gl.DEPTH_BUFFER_BIT);    // 清空屏幕
            gl.LoadIdentity();                    // 重置
            gl.Translate(0.0f, 0.0f, -6.0f);    // 設置坐標,距離屏幕距離為6

            gl.Rotate(xrot, 1.0f, 0.0f, 0.0f);    // 繞X軸旋轉
            gl.Rotate(yrot, 0.0f, 1.0f, 0.0f);    // 繞Y軸旋轉
            gl.Rotate(zrot, 0.0f, 0.0f, 1.0f);    // 繞Z軸旋轉
            gl.Begin(Gl.QUADS);
            gl.Color(1.0, 1.0, 0.0);
            gl.Vertex(1.0, 1.0, -1.0);
            gl.Color(0.0, 1.0, 0.0);
            gl.Vertex(-1.0, 1.0, -1.0);
            gl.Color(0.0, 1.0, 1.0);
            gl.Vertex(-1.0, 1.0, 1.0);
            gl.Color(1.0, 1.0, 1.0);
            gl.Vertex(1.0, 1.0, 1.0);

            gl.Color(1.0, 0.0, 1.0);
            gl.Vertex(1.0, -1.0, 1.0);
            gl.Color(0.0, 0.0, 1.0);
            gl.Vertex(-1.0, -1.0, 1.0);
            gl.Color(0.0, 0.0, 0.0);
            gl.Vertex(-1.0, -1.0, -1.0);
            gl.Color(1.0, 0.0, 0.0);
            gl.Vertex(1.0, -1.0, -1.0);

            gl.Color(1.0, 1.0, 1.0);
            gl.Vertex(1.0, 1.0, 1.0);
            gl.Color(0.0, 1.0, 1.0);
            gl.Vertex(-1.0, 1.0, 1.0);
            gl.Color(0.0, 0.0, 1.0);
            gl.Vertex(-1.0, -1.0, 1.0);
            gl.Color(1.0, 0.0, 1.0);
            gl.Vertex(1.0, -1.0, 1.0);

            gl.Color(1.0, 0.0, 0.0);
            gl.Vertex(1.0, -1.0, -1.0);
            gl.Color(0.0, 0.0, 0.0);
            gl.Vertex(-1.0, -1.0, -1.0);
            gl.Color(0.0, 1.0, 0.0);
            gl.Vertex(-1.0, 1.0, -1.0);
            gl.Color(1.0, 1.0, 0.0);
            gl.Vertex(1.0, 1.0, -1.0);

            gl.Color(0.0, 1.0, 1.0);
            gl.Vertex(-1.0, 1.0, 1.0);
            gl.Color(0.0, 1.0, 0.0);
            gl.Vertex(-1.0, 1.0, -1.0);
            gl.Color(0.0, 0.0, 0.0);
            gl.Vertex(-1.0, -1.0, -1.0);
            gl.Color(0.0, 0.0, 1.0);
            gl.Vertex(-1.0, -1.0, 1.0);

            gl.Color(1.0, 1.0, 0.0);
            gl.Vertex(1.0, 1.0, -1.0);
            gl.Color(1.0, 1.0, 1.0);
            gl.Vertex(1.0, 1.0, 1.0);
            gl.Color(1.0, 0.0, 1.0);
            gl.Vertex(1.0, -1.0, 1.0);
            gl.Color(1.0, 0.0, 0.0);
            gl.Vertex(1.0, -1.0, -1.0);
            gl.End();

            
        }

  

 

放置控件openGLControl1

 

添加事件openGLControl1_OpenGLDraw

Form初始化

 public Form1()
        {
            InitializeComponent();
            gl = this.openGLControl1.OpenGL;
            timer1.Start();
        }

記得添加OpenGL, SharpGL包!!!記得添加OpenGL, SharpGL包!!!記得添加OpenGL, SharpGL包!!!

 

 

 

感謝支持!!!!

感謝支持!!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM