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;
            }
        }
  • 相关阅读:
    【bzoj3566】[SHOI2014]概率充电器 树形概率dp
    【bzoj1419】Red is good 期望dp
    【bzoj2698】染色 期望
    【bzoj2134】单选错位 期望
    【bzoj1022】[SHOI2008]小约翰的游戏John 博弈论
    【bzoj3170】[Tjoi 2013]松鼠聚会 旋转坐标系
    【bzoj2338】[HNOI2011]数矩形 计算几何
    【bzoj2085】[Poi2010]Hamsters Hash+倍增Floyd
    【bzoj1014】[JSOI2008]火星人prefix Splay+Hash+二分
    【bzoj2795】[Poi2012]A Horrible Poem Hash+分解质因数
  • 原文地址:https://www.cnblogs.com/zzkgis/p/3742299.html
Copyright © 2011-2022 走看看