黄聪

论SEO对人类的重要性,请看我的博客:hcsem.com

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

核心代码:

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

posted on 2011-03-06 22:57  黄聪  阅读(7213)  评论(8编辑  收藏  举报