zoukankan      html  css  js  c++  java
  • OpenGL小试牛刀第一季

    效果截图:图片
    代码展示: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;
            }
        }
  • 相关阅读:
    浅谈P2P
    一串字符的解密
    下载地址解密
    初探DirectX
    本文介绍在VC 6.0中编译和使用OpenSSL的过程
    鱼钩绑线视频
    PKCS cer 证书
    02、创建顶点缓冲
    [原]SSL 开发简述(Delphi)
    [转]Delphi和C++数据类型对照表
  • 原文地址:https://www.cnblogs.com/zzkgis/p/3742299.html
Copyright © 2011-2022 走看看