1.

glBegin(GL_TRANGLES);

........

glend();

2.多边形的环绕方向:逆时针和顺时针的正反面

GLFront(GL_CCW)和GLFront(GL_CW);

3.三角形带

glBegin(GL_TRANGLE_STRIP);

.......

glend();

4.三角形扇

glBegin(GL_TRANGLE_FAN);

.......

glend();

例子:

// TRANGLE.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<GL\glut.h>
#include<math.h>
#define PI 3.14
GLfloat Range=100.0f ;
bool DEPTH_TEST=false;
bool CULL_FACE=false;
bool OUTLINE_BACK=false;
static GLfloat xRot=0.0f;
static GLfloat yRot=0.0f;
bool STOP_DEPTHTEST=false;
void Init()
{glClearColor(0.0f,0.0f,0.0f,1.0f);glFrontFace(GL_CW);//单调着色
    glShadeModel(GL_FLAT);
}
void ChangeSize(int w,int h)
{if (h==0){h=1;}glViewport(0,0,w,h);glMatrixMode(GL_PROJECTION);glLoadIdentity();if (w<=h){glOrtho(-Range,Range,-Range*h/w,Range*h/w,-Range,Range);}else{glOrtho(-Range*w/h,Range*w/h,-Range,Range,-Range,Range);}glMatrixMode(GL_MODELVIEW);glLoadIdentity();}
void MyMenu(int value)
{switch (value){case 1:DEPTH_TEST=!DEPTH_TEST;break;case 2:CULL_FACE=!CULL_FACE;break;case 3:OUTLINE_BACK=!OUTLINE_BACK;break;case 4:STOP_DEPTHTEST=true;default:break;}
}
void MyspecialKey(int key,int x,int y)
{if (key==GLUT_KEY_LEFT){yRot-=5.0f;}if (key==GLUT_KEY_RIGHT){yRot+=5.0f;}if (key==GLUT_KEY_UP){xRot-=5.0f;}if (key==GLUT_KEY_DOWN){xRot+=5.0f;}if (xRot>355.0f){xRot=0.0f;}if (xRot<=-5.0f){xRot=355.0f;}if (yRot>355.0f){yRot=0.0f;}if (yRot<=-5.0f){yRot=355.0f;}glutPostRedisplay();
}
void Mydisplay()
{GLint color=1;GLfloat angle=0.0f;GLfloat x,y;glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);if (DEPTH_TEST){glEnable(GL_DEPTH_TEST);}else{glDisable(GL_DEPTH_TEST);}if (CULL_FACE){glEnable(GL_CULL_FACE);glCullFace(GL_BACK);}else{glDisable(GL_CULL_FACE);}if (STOP_DEPTHTEST){glDisable(GL_DEPTH_TEST);}if (OUTLINE_BACK){glPolygonMode(GL_BACK,GL_LINE);}else{glPolygonMode(GL_BACK,GL_FILL);}glPushMatrix();glRotatef(xRot,1.0f,0.0f,0.0f);glRotatef(yRot,0.0f,1.0f,0.0f);glBegin(GL_TRIANGLE_FAN);glVertex3f(0.0f,0.0f,75.0f);for (angle = 0;angle<PI*2; angle+=(PI/8)){x=50.0f*cos(angle);y=50.0f*sin(angle);if ((color%2)==0){glColor3f(0.0f,1.0f,0.0f);}else{glColor3f(1.0f,0.0f,0.0f);}color++;glVertex3f(x,y,0.0f);}glEnd();glBegin(GL_TRIANGLE_FAN);glVertex3f(0.0f,0.0f,0.0f);for (angle = 0;angle<PI*2; angle+=(PI/8)){x=50.0f*cos(angle);y=50.0f*sin(angle);if ((color%2)==0){glColor3f(0.0f,1.0f,0.0f);}else{glColor3f(1.0f,0.0f,0.0f);}color++;glVertex3f(x,y,0.0f);}glEnd();glPopMatrix();glutSwapBuffers();}
int main(int argc,char ** argv)
{glutInit(&argc,argv);glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);glutInitWindowPosition(500,300);glutInitWindowSize(600,600);glutCreateWindow("Trangle");Init();glutDisplayFunc(Mydisplay);glutReshapeFunc(ChangeSize);glutCreateMenu(MyMenu);glutAddMenuEntry("Depth Test",1);glutAddMenuEntry("CullFace",2);glutAddMenuEntry("Outline Back",3);glutAddMenuEntry("STOP DEPTHTEST",4);glutAttachMenu(GLUT_RIGHT_BUTTON);glutSpecialFunc(MyspecialKey);glutMainLoop();}

1.深度测试

2.隐藏面消除

3.线框模式:glpoloygonModel(GLenum face,GL_LINE/GL_FILL);

4.着色模式 glshademodel(GL_FLAT)和glshademodel(GL_SMOOTH);

转载于:https://www.cnblogs.com/YTYMblog/p/5699467.html

绘制图形与3D增强技巧(三)----三角形图元TRANGLE相关推荐

  1. 【UWP通用应用开发】编辑文本、绘制图形、3D透视效果及绘制时钟实战

    编辑文本及键盘输入 相信大家都会使用TextBox,但如果要让文本在TextBox中换行该怎么做呢?将TextWrapping属性设置为Wrap,将AcceptsReturn属性设置为True就好咯. ...

  2. html5实现圆圈里带一个三角形,Fabric.js - 详细使用教程1(绘制图形:矩形、圆形、三角形、不规则图形)...

    一.绘制图形 1,绘制矩形 下面代码在画布上绘制一个红色圆角矩形,并带有橙色边框. canvas { border: 1px dashed black; } window.onload = funct ...

  3. 学习笔记:unity通过Mesh网格绘制图形:三角形正方体圆柱

    一,介绍 Mesh类:通过脚本创建或是获取网格的类,网格包含多个顶点和三角形数组.顶点信息包含坐标和所在面的法线. unity中3D的世界的所有图形全部都是由三角形构成的. 比如unity已经装配好的 ...

  4. html绘制图形的关键三步,基于HTML5的绘图——绘制简单图形

    绘制矩形 HTML5中实现绘制矩形的效果可以调用上下对象的三个函数fillRect().strokeRect()和clearRect().这些函数的语法格式如下所示: context.fillRect ...

  5. 如何用python中的turtle库画三角形_Python如何使用turtle库绘制图形

    1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...

  6. Java绘制图形(正方形/三角形/圆/网以及填充颜色)

    Java绘制图形(正方形/三角形/圆/网以及填充颜色) 首先用EasyGraphics确定图片大小 然后用setcolor来设置图象主题颜色 也可以给特定大的点设置颜色 例如: g.setColor( ...

  7. Matlab中绘制度长方体3D图形

    Matlab中绘制度长方体3D图形 已知空间中长方体网格的三维坐标(x,y,z)及其对应的值Value,绘制出长方体的各个面, 各个面的颜色根据对应坐标的值设定. 图形效果如下 以下是matlab中的 ...

  8. sketch中快速绘制图形的几个小技巧

    sketch添加图层最简单的方式是直接从工具栏选择一个标准图形.点击工具栏中的插入(Insert)> 图形(Shape),选择任一个图形,比如选中矩形,光标会变成一个右上角带有小矩形的十字光标. ...

  9. 3D图形数学(3D Graphics Math)

    3D图形数学(3D Graphics Math) 1  图形管道概述 我们将讨论渲染一幅带有基本光照的单个图像的大体过程,这里不考虑动画和全局光照,如阴影和辐射度. 此外,注意这里只从概念上讲解通过图 ...

最新文章

  1. ecshop目录结构
  2. C# IE浏览器操作类
  3. [面试]synchronized
  4. PaaS平台OpenShift企业部署的“脑图”
  5. java输入输出流详解_Java输入输出流详解
  6. NOD32中小企业服务器版部署方法
  7. 智能家居中控屏(二):产品设计
  8. 我所知道坦克大战(单机版)之添加爆炸效果、击毙坦克后产生爆炸
  9. jena java_java – 使用Jena查询wikidata
  10. Android百度地图之位置定位和附近查找代码简单实现 (上)
  11. 离线编译安装lrzsz
  12. laravel学习笔记------使用 Entrust 扩展包在 Laravel 5 中实现 RBAC 权限管理
  13. 计算机广东大专院校排名2018,重磅!广东85所专科院校官方排名刚刚出炉,这所高职回归第一!...
  14. 揭示未来方向:2018中国TMT行业“领秀榜”盛典直击
  15. Java 2.16(几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  16. 乔布斯与Google鲜为人知的故事
  17. 现实赢了袖手旁观他在冷眼看我们
  18. LTE FDD PSS/SSS/MIB时频资源位置
  19. 44道JS难题,做对一半就是高手
  20. 架构师修炼系列【软件架构师都做些什么】

热门文章

  1. HBuilder X 未检测到手机或模拟器(安卓端)
  2. [Swift]修改NSLayoutConstraint的multiplier
  3. python学习之——综合小游戏
  4. 超好用的免费PDF转换器,各种互相转换,功能齐全到你不敢相信!
  5. 2023最新织梦CMS高端红酒酒水类网站模板源码+SEO全屏自适应布局
  6. uni-app 188修复弹框问题
  7. c语言打出的王字图形图形,C语言编程宝典(王大刚) 3 关键字和标识符
  8. Matlab求齐次方程的解
  9. 网工浓缩笔记以及考点(第四章 无线通信网)
  10. Web客户端语言HTML、XHTML和XML相关知识介绍