Blueherb In solitude, where we are least alone

C# OPENGL DEMO 旋转彩色立方体OpenGL, SharpGL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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包!!!

 

 

 

感谢支持!!!!

感谢支持!!!!

posted @   孤燕  阅读(1493)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
 
点击右上角即可分享
微信分享提示