效果截图:
代码展示:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using SharpGL;
namespace Example1
{
    public partial class FormExample : Form
    {
        public FormExample()
        {
            InitializeComponent();
            rbfull.Checked = true;
        }
        /// <summary>
        /// 默认绘画模式为线条
        /// </summary>
        private uint _model = OpenGL.LINE_LOOP;
        /// <summary>
        /// X轴坐标
        /// </summary>
        private float _x = 0;
        /// <summary>
        /// Y轴坐标
        /// </summary>
        private float _y = 0;
        /// <summary>
        /// Z轴坐标
        /// </summary>
        private float _z = 0;
        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();      // 结束绘制
        }
        private void rbfull_CheckedChanged(object sender, EventArgs e)
        {
            _model = OpenGL.QUADS;
        }
        private void rbline_CheckedChanged(object sender, EventArgs e)
        {
            _model = OpenGL.LINE_LOOP;
        }
        private void tbX_Scroll(object sender, EventArgs e)
        {
            int x = tbX.Value;
            _x = x;
            labX.Text = "X:" + x;
        }
        private void tbY_Scroll(object sender, EventArgs e)
        {
            int y = tbY.Value;
            _y = y;
            labY.Text = "Y:" + y;
        }
        private void tbZ_Scroll(object sender, EventArgs e)
        {
            int z = tbZ.Value;
            _z = z;
            labZ.Text = "Z:" + z;
        }
        private void btnReset_Click(object sender, EventArgs e)
        {
            _x = _y = _z = 0;
        }
    }

OpenGL小试牛刀第一季的更多相关文章

  1. OpenGL小试牛刀第二季(粒子模拟)

    效果截图:粒子模拟代码展示:#include "Particle.h" /** 构造函数 */CParticle::CParticle(){ data = NULL; numpar ...

  2. 今年第一季全球PC出貨量同比下降5.2%

    市場調研公司Gartner上周發佈報告稱,隨著企業支出的下滑,今年第一季全球PC出貨量同比下降5.2%迪士尼美語評價.英特爾稱,第一季筆記本晶片出貨量同比增長3%,但是筆記本晶片的平均銷售價格下降了3 ...

  3. JAVA入门第一季(mooc-笔记)

    笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...

  4. QQ聊天界面的布局和设计(IOS篇)-第一季

    我写的源文件整个工程会再第二季中发上来~,存在百度网盘, 感兴趣的童鞋, 可以关注我的博客更新,到时自己去下载~.喵~~~ QQChat Layout - 第一季 一.准备工作 1.将假数据messa ...

  5. Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter

    前言 前面两篇写的比较简单,刚开始写这个系列的时候我面向的对象是刚开始接触Asp.Net MVC的朋友,所以写的尽量简单.所以写的没多少技术含量.把这些技术总结出来,然后一简单的方式让更多的人很好的接 ...

  6. Hadoop 2.x从零基础到挑战百万年薪第一季

    鉴于目前大数据Hadoop 2.x被企业广泛使用,在实际的企业项目中需要更加深入的灵活运用,并且Hadoop 2.x是大数据平台处理 的框架的基石,尤其在海量数据的存储HDFS.分布式资源管理和任务调 ...

  7. 高晓松脱口秀--晓说(第一季&第二季)mp3下载

    晓说 第一季 (1-5) http://pan.baidu.com/share/link?shareid=480859&uk=4043605559 (6-10) http://pan.baid ...

  8. 《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)

    根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: ...

  9. 《java入门第一季》之面向对象(谈谈接口)

    软件中有接口,这里的接口与硬件中的接口还是有很大区别的. 这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!) 还是直接进入接口的 ...

随机推荐

  1. 数据库路由中间件MyCat - 源代码篇(11)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 4.配置模块 每个MyCatServer初始化时,会初始化: MyCatServer.java: publi ...

  2. jenkins 找不到mvn 命令

    错误如下: /data/jenkins/temp/hudson9132559581388971644.sh: line 4: mvn: command not found 方法如下: 1  修改环境变 ...

  3. uoj#290. 【ZJOI2017】仙人掌(数数+仙人掌+树形dp)

    传送门 这图可以说是非常形象了2333 模拟赛的时候打了个表发现为一条链的时候答案是\(2^{n-2}\)竟然顺便过了第一个点 然后之后订正的时候强联通分量打错了调了一个上午 首先不难发现我们可以去掉 ...

  4. generator——实例:runner

    咱们本篇说的依然还是咱们的generator,实际上来说,咱们之前已经说了generator是啥以及generator里的yield怎么个用法,那接下来呢,咱就要具体来看个例子了,东西咱都搞明白了,之 ...

  5. Java程序动态编译Java源文件

    最近接触到公司一个项目,需要将生成的源码动态编译,记录下学习过程. 先贴出官网推荐写法: JavaCompiler.CompilationTask getTask(Writer out,        ...

  6. Java基础笔记(六)——进制表示、ASCII码和Unicode编码

    Java中有三种表示整数的方法:十进制.八进制.十六进制. 八进制:以0开头,包括0~7的数字.如:int octal=020;  //定义int型变量存放八进制数据 十六进制:以0x或0X开头,包括 ...

  7. 2017百度之星程序设计大赛 - 复赛 Arithmetic of Bomb

    http://acm.hdu.edu.cn/showproblem.php?pid=6144 解法:一个简单的模拟 #include <bits/stdc++.h> using names ...

  8. ssis-oracle 数据流任务

    [OLE DB 源 1 [16]] 错误: SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.对连接管理器“F360DB”的 A ...

  9. html select change事件触发

    做小组内使用的一个简单工具,其中要实现的一个小功能是当某个下拉菜单的选择值改变时触发另一表单元素的属性变化.自然的想到使用select表单元素的onchange事件. 下拉菜单部分的代码如下: < ...

  10. Java基础(Scanner、Random、流程控制语句)

    第3天 Java基础语法 今日内容介绍 u 引用数据数据类型(Scanner.Random) u 流程控制语句(if.for.while.dowhile.break.continue) 第1章 引用数 ...