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类似。



好的,关于绘制多边形,我会为您提供一些OpenGL学习笔记。 首先,我们需要了解一下OpenGL绘制多边形的基本流程。OpenGL绘制多边形的过程包括三个基本步骤:指定顶点数据、指定绘制方式和执行绘制。 指定顶点数据:在OpenGL中,我们可以使用glVertex等函数来指定多边形的顶点。例如,如果我们要绘制一个三角形,我们可以使用以下代码: ``` glBegin(GL_TRIANGLES); glVertex3f(0.0f, 1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f); glEnd(); ``` 其中,glBegin和glEnd函数用来指定绘制的方式,GL_TRIANGLES表示绘制三角形。glVertex3f函数用来指定三角形的三个顶点,每个顶点由三个坐标值组成。 指定绘制方式:OpenGL支持多种绘制方式,例如GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN等。在上面的代码中,我们使用了GL_TRIANGLES来指定绘制三角形的方式。 执行绘制:最后,我们需要调用glDrawArrays函数来执行绘制。例如,如果我们要绘制一个三角形,我们可以使用以下代码: ``` glDrawArrays(GL_TRIANGLES, 0, 3); ``` 其中,GL_TRIANGLES表示绘制三角形的方式,0表示顶点数组的起始位置,3表示顶点的数量。 以上就是OpenGL绘制多边形的基本流程,下面我们来看一下如何绘制着色多边形绘制着色多边形的过程与绘制普通多边形的过程基本相同,只需要在绘制前调用glColor函数来指定颜色即可。例如,如果我们要绘制一个红色的三角形,我们可以使用以下代码: ``` glBegin(GL_TRIANGLES); glColor3f(1.0f, 0.0f, 0.0f); // 指定颜色为红色 glVertex3f(0.0f, 1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f); glEnd(); ``` 其中,glColor3f函数用来指定颜色,三个参数分别表示红、绿、蓝三个颜色通道的值,取值范围为0到1。 希望以上内容能够帮助到您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值