OpenGL中画三角形

最近导师给我一个任务,让我做数据可视化。
OpenGL中画三角形_第1张图片
类似这样的。
其实很明显,就是对数据取点,然后用OpenGL画三角形就完事了。

OpenGL中画三角形有三种方法:TRIANGLES、TRIANGLE_STRIP和GL_TRIANGLE_FAN。

TRIANGLES

OpenGL中画三角形_第2张图片
GL_TRIANGLES是以每三个顶点绘制一个三角形。第一个三角形使用顶点v0,v1,v2,第二个使用v3,v4,v5,以此类推。如果顶点的个数n不是3的倍数,那么最后的1个或者2个顶点会被忽略。

TRIANGLE_STRIP

OpenGL中画三角形_第3张图片
构建当前三角形的顶点的连接顺序依赖于要和前面已经出现过的2个顶点组成三角形的当前顶点的序号的奇偶性(如果从0开始):

如果当前顶点是奇数则遵循奇数环绕规则

在这里插入图片描述

如果当前顶点是偶数则遵循偶数环绕规则

在这里插入图片描述
以上图为例,第一个三角形,顶点v2序号是2,是偶数,则顶点排列顺序是v0,v1,v2。第二个三角形,顶点v3序号是3,是奇数,则顶点排列顺序是v2,v1,v3,第三个三角形,顶点v4序号是4,是偶数,则顶点排列顺序是v2,v3,v4,以此类推。

这个顺序是为了保证所有的三角形都是按照相同的方向绘制的,使这个三角形串能够正确形成表面的一部分。对于某些操作,维持方向是很重要的,比如剔除。

注意:顶点个数n至少要大于3,否则不能绘制任何三角形。

GL_TRIANGLE_FAN

这个方法是以一系列顶点中的第一个点为中心点,其他顶点为边缘点,绘制一系列组成扇形的相邻三角形。

GL_TRIANGLE_FAN与GL_TRIANGLE_STRIP类似,不过它的三角形的顶点排列顺序是T = [n-1 n-2 n].各三角形形成一个扇形序列。
OpenGL中画三角形_第4张图片

你可能感兴趣的:(OpenGL中画三角形)