opengl学习笔记(四)——绘制简单多边形

glBegin函数还提供了以下几个参数来画出凸多边形。所谓凸多边形,是指它要满足如下性质:把该多边形任意一边向两方无限延长成为一条直线后,其他各边均在此直线的同侧。

(1)GL_POLYGON,这个参数用后面的顶点列表画出一个凸多边形。

例子代码:

void display(void)
{
	glClear(GL_COLOR_BUFFER_BIT); 
	glBegin(GL_POLYGON);
	glVertex2f(-0.5, -0.5); //点P1,左下角
	glVertex2f(-0.5, 0.5);  //点P2,左上角
	glVertex2f(0.5, 0.5);   //点P3,右上角            
	glVertex2f(0.5, -0.5); //点P4,右下角
	glEnd();
	glFlush(); 
}

运行效果如下图1所示:(红色文字为我所加,不是实际运行效果,下同)

                             图1 内部填充为白色的矩形

默认情况下,opengl在画多边形时,会自动用指定颜色(默认为白色)填充其内部。如果想只显示多边形的边线而不填充其内部,可以在glBegin函数之前加上一句

glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);    这个语句的作用告诉opengl只画出边框,但不填充内部。运行效果如下:

              图 2  矩形线框 

本节中后面的例子都设置为线框模式,不再赘述。

(2)GL_TRIANGLES ,将每3个顶点为一组画出一个三角形,如果剩余的顶点个数不足3个则忽略。运行效果如下所示:

(3)GL_TRIANGLES_STRIP 于GL_LINE_STRIP类似,画出顶点列表中所有由任意连续三点所组成的三角形。在本例里即依次画出三角形P1P2P3, P2P3P4 运行效果如下所示。

(4)GL_TRIANGLE_FAN

所有三角形都以第一点为顶点,另外两个顶点为连续顶点。即画出P1P2P3,P1P3P4。效果如下所示:

(5) GL_QUADS:每4个顶点为一组画出一个四边形。如果剩余点数不足4个,则忽略。

(6) GL_QUAD_STRIP:每两个顶点为一组,任意连续的两组画出一个四边形。如果有8个点为P1到P8,则最后画出3个4边形:

P1P2P3P4,

P3P4P5P6,

P5P6P7P8。

opengl还提供了一个直接画矩形的函数系列

glRect[sifd],中括号里的字符代表参数类型

s:short 短整型

i:integet 整型

f:float浮点型

d:double 双精度型。

例如下面的代码画出一个矩形框,左下角为(-0.5,-0.5),右上角为(0.5, 0.5)

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT); 
	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);    
	glRectf(-0.5f,-0.5f,0.5f,0.5f);
	glFlush(); 
}
效果和上面的图2类似。



  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值