在3D空间中绘制四边形

本文详细介绍了如何在3D空间中使用OpenGL绘制四边形,包括GL_QUADS、GL_QUAD_STRIP和GL_POLYGON图元。讨论了多边形的创建规则,强调了多边形必须是平面且边不相交。同时,通过glPolygonMode和glEdgeFlag函数展示了如何创建线框模式的多边形,控制边界线的可见性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在3D空间中绘制四边形


四边形 GL_QUADS

         OpenGL的GL_QUADS图元用于绘制四边形,它根据每四个顶点绘制一个四边形。

         注意,在使用四边形时,必需记住一个重要规则:一个四边形的四个角必须位于同一个平面中(不存在弯曲的四边形)。如图所示

 


 

四边形带 GL_QUAD_STRIP

         该图元指定一个连接的四边形带。它们都保持相同方向的环绕。如图所示

 


 

通用多边形 GL_POLYGON

         我们可以用它绘制任意数量的多边形。与四边形一样,多边形的所有顶点也必须位于同一平面中。如果想越过这个规则,可以采用一种变通的方法,使用GL_TRIANGLE_FAN代替GL_POLYGON。如图所示

 

 

多边形的创建规则:

 

1、 第一个规则是所有的多边形都必须是平面的。也就是说,多边形的所有顶点必须位于同一个平面中。在空间中,多边形不能扭曲或弯曲。

2、 第二个规则是多边形的边必须不相交,多边形必须是凸的。

 

注意,OpenGL施加这些限制的原因,是为了使用一些非常快速的算法对多边形进行渲染。


细分和边界

         尽管OpenGL只能绘制凸多边形,但我们仍然能够创建非凸的多边形,那就是把两个或多个多边形排列在一起。我们使用OpenGL命令glPolygonMode可以把绘图模式切换到线框模式,这样就能看到组成较大表面区域的每一个较小的三角形。另外,我们还可以通过glEdgeFlag命令来通知OpenGL哪些线段属于边界线(围绕形状边缘的直线),哪些线段不属于边界线(形状内部的直线),这些形状内部的直线将不可见。下面的程序展示了glEdgeFlag函数的用法,当这个函数设置为true时,接下来所有的顶点都将作为多边形边界线的起点,反之则作为形状内部的直线。

 

/* 程序清单 3-11

 * 2014/5/6

 */

 

#include <glut.h>

#include

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值