OPengl中四边形的绘制类型有:GL_QUADS,GL_QUAD_STRIP和GL_POLYGON。
GL_QUADS
依次定义四边形的各个顶点。
glPolygonMode(GL_FRONT, GL_LINE);
glBegin(GL_QUADS);
glVertex3f(10.0f, 100.0f, 0.0f);
glVertex3f(50.0f, 50.0f, 0.0f);
glVertex3f(60.0f, 100.0f, 0.0f);
glVertex3f(30.0f, 120.0f, 0.0f);
glVertex3f(60.0f, 50.0f, 0.0f);
glVertex3f(70.0f, 100.0f, 0.0f);
glVertex3f(100.0f, 50.0f, 0.0f);
glVertex3f(80.0f, 30.0f, 0.0f);
glEnd();
GL_QUAD_STRIP
四边形带,通过共用四边形的边,减少点的个数
glPolygonMode(GL_FRONT, GL_LINE);
glBegin(GL_QUAD_STRIP);
glVertex3f(10.0f, 100.0f, 0.0f);
glVertex3f(50.0f, 50.0f, 0.0f);
glVertex3f(60.0f, 100.0f, 0.0f);
glVertex3f(60.0f, 80.0f, 0.0f);
glVertex3f(80.0f, 90.0f, 0.0f);
glVertex3f(80.0f, 70.0f, 0.0f);
glEnd();
GL_POLYGON
多边形,通过逆时针定义多边形的点。
glPolygonMode(GL_FRONT, GL_LINE);
glBegin(GL_POLYGON);
glVertex3f(10.0f, 100.0f, 0.0f);
glVertex3f(50.0f, 50.0f, 0.0f);
glVertex3f(60.0f, 80.0f, 0.0f);
glVertex3f(60.0f, 100.0f, 0.0f);
glVertex3f(30.0f, 120.0f, 0.0f);
glEnd();
绘制四边形默认为填充GL_FILL,为了方便比较,启用线框模式绘制。
glPolygonMode(GL_FRONT, GL_LINE);