zoukankan      html  css  js  c++  java
  • OPENGL3_基本图元

    类型 说明
    GL_POINTS 单个顶点集
    GL_LINES 多组双顶点线段
    GL_POLYGON 单个简单填充凸多边形
    GL_TRAINGLES 多组独立填充三角形
    GL_QUADS 多组独立填充四边形
    GL_LINE_STRIP 不闭合折线
    GL_LINE_LOOP 闭合折线
    GL_TRAINGLE_STRIP 线型连续填充三角形串
    GL_TRAINGLE_FAN 扇形连续填充三角形串
    GL_QUAD_STRIP 连续填充四边形串

                      几何图元类型说


    代码效果


    代码

    int DrawGLScene(GLvoid)									// Here's Where We Do All The Drawing
    {
    	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear Screen And Depth Buffer
    	glLoadIdentity();									// Reset The Current Modelview Matrix
    	
    	//移动是相对当前位置移动(第一次移动相对与屏幕中心0,0,0下一次再移动时相对的就是本次移动后的位置了)
    	//向屏幕内移动18.9个单位,这样1个单位(1米)对应480/(2*tan(22.5)*(18.9+0.1)= 30像素
    	glTranslatef(0.0f,0.0f,-18.9f);
    
    	// 绘制不连续线段,把屏幕分成9部分
    	glBegin(GL_LINES);								
    	// 横线
    	glVertex3f( -21.0f, 3.0f, 0.0f);					
    	glVertex3f(21.0f, 3.0f, 0.0f);				
    	glVertex3f( -21.0f, -3.0f, 0.0f);
    	glVertex3f( 21.0f, -3.0f, 0.0f);
    	// 竖线
    	glVertex3f( -3.0f, 8.0f, 0.0f);					
    	glVertex3f(-3.0f, -8.0f, 0.0f);				
    	glVertex3f( 3.0f, 8.0f, 0.0f);
    	glVertex3f( 3.0f, -8.0f, 0.0f);
    	glEnd();
    
    	
    	// 绘制点
    	glBegin(GL_POINTS);
    	glColor3f(1.0f,0.0f,0.0f);// 设置当前色为红色
    	glVertex3f( -8.0f, 5.5f, 0.0f);
    	glVertex3f( -7.5f, 5.5f, 0.0f);
    	glVertex3f( -7.0f, 5.5f, 0.0f);
    	glEnd();
    
    	// 绘制不闭合折线
    	glBegin(GL_LINE_STRIP);
    	glColor3f(1.0f,1.0f,0.0f);// 设置当前色为黄色
    	glVertex3f( -2.0f, 5.5f, 0.0f);
    	glVertex3f( 2.0f, 5.5f, 0.0f);
    	glVertex3f( -2.0f, 4.0f, 0.0f);
    	glVertex3f( 2.0f, 4.0f, 0.0f);
    	glEnd();
    
    	// 绘制闭合折线
    	glBegin(GL_LINE_LOOP);
    	glColor3f(0.0f,0.0f,1.0f);// 设置当前色为蓝色
    	glVertex3f( 6.0f, 6.0f, 0.0f);
    	glVertex3f( 4.0f, 4.0f, 0.0f);
    	glVertex3f( 8.0f, 4.0f, 0.0f);
    	glEnd();
    
    	// 绘制多组独立填充三角形(以下绘制2个三角形)
    	glBegin(GL_TRIANGLES);
    	glColor3f(1.0f,0.0f,0.0f);// 设置当前色为红色
    	glVertex3f( -9.0f, 1.0f, 0.0f);
    	glVertex3f(-8.0f,-1.0f, 0.0f);
    	glVertex3f( -10.0f,-1.0f, 0.0f);
    
    	glVertex3f( -6.0f, 1.0f, 0.0f);
    	glVertex3f(-5.0f,-1.0f, 0.0f);
    	glVertex3f( -7.0f,-1.0f, 0.0f);
    	glEnd();
    
    	// 绘制三角形带
    	glBegin(GL_TRIANGLE_STRIP);//(以下绘制3个连续三角形)
    	
    
    
    	//第一个三角形由点123逆时针构成
    	//第二个三角形由点324逆时针构成
    	//第三个三角形由点345逆时针构成
    
    	glColor3f(1.0f,0.0f,0.0f);// 设置当前色为红色
    	glVertex3f( -2.0f,-1.0f, 0.0f);//点1
    	glVertex3f(0.0f,-1.0f, 0.0f);//点2
    	glVertex3f( -1.0f, 1.0f, 0.0f);//点3
    	glColor3f(0.0f,1.0f,0.0f);// 设置当前色为绿色
    	glVertex3f( 1.0f,1.0f, 0.0f);//点4
    	glColor3f(0.0f,0.0f,1.0f);// 设置当前色为蓝色
    	glVertex3f(2.5f,2.5f, 0.0f);//点5
    	
    	glEnd();
    
    	
    	
    
    	return TRUE;										// Everything Went OK
    }



  • 相关阅读:
    Jmeter 常用函数(20)- 详解 __counter
    Jmeter 常用函数(19)- 详解 __BeanShell
    Python 简明教程 --- 26,Python 多进程编程
    Python 简明教程 --- 25,Python 目录操作
    Python 简明教程 --- 24,Python 文件读写
    Zookeeper分布式过程协同技术
    设计模式之命令模式案例详解
    设计模式之模板方法模式
    设计模式之代理模式案例详解
    设计模式之享元模式
  • 原文地址:https://www.cnblogs.com/nafio/p/9137610.html
Copyright © 2011-2022 走看看