예제 #1
0
        private void glView1_OpenGLDraw(object sender, SharpGL.RenderEventArgs args)
        {
            SharpGL.OpenGL gl = this.glView1.OpenGL;

            gl.Clear(SharpGL.OpenGL.GL_COLOR_BUFFER_BIT | SharpGL.OpenGL.GL_DEPTH_BUFFER_BIT);
            //gl.ClearColor(1f, 1f, 1f, 1f);
            gl.LoadIdentity();



            gl.Translate(0.0f, 0.0f, -12.0f);

            GLHelper.DrawBackground(gl);

            float transX = movedX / 20;
            float transY = movedY / 20;

            gl.Translate(transX, transY, 0.0f);

            gl.Rotate(axisRotateX, 1.0f, 0.0f, 0.0f);
            gl.Rotate(axisRotateY, 0.0f, 1.0f, 0.0f);
            gl.Rotate(axisRotateZ, 0.0f, 0.0f, 1.0f);

            gl.Scale(scaleFactor, scaleFactor, scaleFactor);

            if (doDrawDefault)
            {
                //GLHelper.DrawNet(gl, 100, 5);
            }

            if (doDrawAxis)
            {
                GLHelper.DrawAxis3D(gl, 0, 0, 0,
                                    -3, 10,
                                    -3, 10,
                                    -3, 10,
                                    3, 1);
            }

            if (doDrawSolids)
            {
                //...
                GLHelper.DrawBox(gl, 10, 4, 4, Color.Orange, Color.OrangeRed);

                gl.Translate(5.0f, 3.0f, 0.0f);
                GLHelper.DrawPiram(gl, 10, 3, 4, System.Drawing.Color.DarkGreen, System.Drawing.Color.LightGreen);

                gl.Translate(-2.5f, 4.0f, 0.0f);
                GLHelper.DrawCylinder(gl, 5, 5, 7, Color.PaleVioletRed, Color.MediumVioletRed);

                gl.Translate(0.0f, 8.0f, 0.0f);
                GLHelper.DrawCylinder(gl, 5, 1, 4, Color.Chocolate, Color.Red);

                gl.Translate(0.0f, 5.0f, 0.0f);
                GLHelper.DrawSphere(gl, 3, Color.LightBlue, Color.Blue);
            }

            gl.LoadIdentity();
        }
예제 #2
0
파일: Form1.cs 프로젝트: aovakur/open_gl
        private void openGLControl1_OpenGLDraw(object sender, SharpGL.RenderEventArgs args)
        {
            SharpGL.OpenGL gl = this.openGLControl1.OpenGL;

            gl.Clear(SharpGL.OpenGL.GL_COLOR_BUFFER_BIT | SharpGL.OpenGL.GL_DEPTH_BUFFER_BIT); // Очистка скрина

            gl.LoadIdentity();                                                                 // сброс

            gl.Translate(0.0f, 0.0f, -6.0f);                                                   // переместить влево

            gl.Rotate(axis_rotate_X, 1.0f, 0.0f, 0.0f);
            gl.Rotate(axis_rotate_Y, 0.0f, 1.0f, 0.0f);
            gl.Rotate(axis_rotate_Z, 0.0f, 0.0f, 1.0f);

            gl.Begin(SharpGL.OpenGL.GL_TRIANGLES); // начать рисовать пирамиду

            gl.Color(1.0f, 0.0f, 0.0f);            //красный
            gl.Vertex(0.0f, 1.0f, 0.0f);           // центр пирамиды
            gl.Color(0.0f, 1.0f, 0.0f);            //Зеленый
            gl.Vertex(-1.0f, -1.0f, 1.0f);         // левая сторона пирамиды
            gl.Color(0.0f, 0.0f, 1.0f);            // Синий
            gl.Vertex(1.0f, -1.0f, 1.0f);          // права сторона пирамиды

            gl.Color(1.0f, 0.0f, 0.0f);            //красный
            gl.Vertex(0.0f, 1.0f, 0.0f);           // центр пирамиды
            gl.Color(0.0f, 0.0f, 1.0f);            //Зеленый
            gl.Vertex(1.0f, -1.0f, 1.0f);          // левая сторона пирамиды
            gl.Color(0.0f, 1.0f, 0.0f);            // Синий
            gl.Vertex(1.0f, -1.0f, -1.0f);         // права сторона пирамиды

            gl.Color(1.0f, 0.0f, 0.0f);            //красный
            gl.Vertex(0.0f, 1.0f, 0.0f);           // центр пирамиды
            gl.Color(0.0f, 1.0f, 0.0f);            //Зеленый
            gl.Vertex(1.0f, -1.0f, -1.0f);         // левая сторона пирамиды
            gl.Color(0.0f, 0.0f, 1.0f);            // Синий
            gl.Vertex(-1.0f, -1.0f, -1.0f);        // права сторона пирамиды

            gl.Color(1.0f, 0.0f, 0.0f);            //красный
            gl.Vertex(0.0f, 1.0f, 0.0f);           // центр пирамиды
            gl.Color(0.0f, 0.0f, 1.0f);            //Зеленый
            gl.Vertex(-1.0f, -1.0f, -1.0f);        // левая сторона пирамиды
            gl.Color(0.0f, 1.0f, 0.0f);            // Синий
            gl.Vertex(-1.0f, -1.0f, 1.0f);         // права сторона пирамиды



            gl.End();
            gl.LoadIdentity();
        }
예제 #3
0
 protected virtual void OnOpenGLDraw(object sender, SharpGL.RenderEventArgs args)
 {
 }
예제 #4
0
 private void sceneControl_OpenGLDraw(object sender, SharpGL.RenderEventArgs args)
 {
 }