C#窗体程序OpenGL绘制立方体多边形旋转示例教程(VS2008,Winform)

简介:

朋友做毕业设计需要通过采集下位机数据绘制一个立方体,帮忙查了一下资料,发现用OpenGL可以很好的解决问题,鼓弄了2个小时弄出了这个示例程序,虽然简陋但是可以提供给朋友使用了,下面就放出代码和效果图给大家:

2011030622542984.png

核心代码:

复制代码
 
   
private void openGLControl1_OpenGLDraw( object sender, PaintEventArgs e)
{
// 创建一个GL对象
SharpGL.OpenGL gl = this .openGLControl1.OpenGL;

gl.Clear(OpenGL.COLOR_BUFFER_BIT
| OpenGL.DEPTH_BUFFER_BIT); // 清空屏幕
gl.LoadIdentity(); // 重置
gl.Translate( 0.0f , 0.0f , - 6.0f ); // 设置坐标,距离屏幕距离为6

gl.Rotate(_x,
1.0f , 0.0f , 0.0f ); // 绕X轴旋转
gl.Rotate(_y, 0.0f , 1.0f , 0.0f ); // 绕Y轴旋转
gl.Rotate(_z, 0.0f , 0.0f , 1.0f ); // 绕Z轴旋转

gl.Begin(_model);
// 绘制立方体
gl.Color( 0.0f , 1.0f , 0.0f ); // 设置颜色
// 绘制其中一个面
gl.Vertex( 1.0f , 1.0f , - 1.0f );
gl.Vertex(
- 1.0f , 1.0f , - 1.0f );
gl.Vertex(
- 1.0f , 1.0f , 1.0f );
gl.Vertex(
1.0f , 1.0f , 1.0f );

// 如下类同
gl.Color( 1.0f , 0.5f , 0.0f );
gl.Vertex(
1.0f , - 1.0f , 1.0f );
gl.Vertex(
- 1.0f , - 1.0f , 1.0f );
gl.Vertex(
- 1.0f , - 1.0f , - 1.0f );
gl.Vertex(
1.0f , - 1.0f , - 1.0f );

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

gl.Color(
1.0f , 1.0f , 0.0f );
gl.Vertex(
1.0f , - 1.0f , - 1.0f );
gl.Vertex(
- 1.0f , - 1.0f , - 1.0f );
gl.Vertex(
- 1.0f , 1.0f , - 1.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.Vertex(
- 1.0f , 1.0f , - 1.0f );
gl.Vertex(
- 1.0f , - 1.0f , - 1.0f );
gl.Vertex(
- 1.0f , - 1.0f , 1.0f );

gl.Color(
1.0f , 0.0f , 1.0f );
gl.Vertex(
1.0f , 1.0f , - 1.0f );
gl.Vertex(
1.0f , 1.0f , 1.0f );
gl.Vertex(
1.0f , - 1.0f , 1.0f );
gl.Vertex(
1.0f , - 1.0f , - 1.0f );
gl.End();
// 结束绘制
}
复制代码

示例程序下载地址:旋转立方体示例.rar




本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2011/03/06/1972597.html,如需转载请自行联系原作者

相关文章
|
1天前
|
C#
C# WinForm发送Email邮件
C# WinForm发送Email邮件
C# WinForm发送Email邮件
|
1天前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
37 0
|
1天前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
83 0
|
1天前
C#WinForm基础编程(二)
C#WinForm基础编程
62 0
|
1天前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
63 0
|
1天前
|
C# 开发者
C# 9.0中的模块初始化器:程序启动的新控制点
【1月更文挑战第14天】本文介绍了C# 9.0中引入的新特性——模块初始化器(Module initializers)。模块初始化器允许开发者在程序集加载时执行特定代码,为类型初始化提供了更细粒度的控制。文章详细阐述了模块初始化器的语法、用途以及与传统类型初始化器的区别,并通过示例代码展示了如何在实际项目中应用这一新特性。
|
1天前
|
监控 安全 C#
开发公司电脑监控软件的报警系统:一个C#示例
在当今数字化时代,企业对其计算机网络和系统的安全性和稳定性越来越重视。为了确保员工遵守公司政策、保护机密信息以及监控系统的正常运行,开发一种可靠的公司电脑监控软件变得至关重要。本文将介绍如何使用C#编写一个简单而有效的报警系统,以便监控关键数据并在必要时发出警报。
4 0
|
1天前
|
C#
C#断点续传的实现示例
C#断点续传的实现示例
8 0
|
1天前
|
SQL 存储 Oracle
C#利用IDbCommand实现通用数据库脚本执行程序
C#利用IDbCommand实现通用数据库脚本执行程序
|
1天前
|
前端开发 Java C#
C#程序启动后乱码(通过idea启动)
C#程序启动后乱码(通过idea启动)
18 0