关于多边形的正反面
在二维的面,从三维的角度来看,是具有两个面的。一般约定为“顶点以逆时针顺序出现在屏幕上的面”为“正面”,另一个面即成为“反面”。
每一个面都可以设置不同的绘制方式:填充、只绘制边缘轮廓线、只绘制顶点
, 其中“填充”是默认的方式。可以为两个面分别设置不同的方式。
glPolygonMode(GL_FRONT, GL_FILL); // 设置正面为填充方式
glPolygonMode(GL_BACK, GL_LINE); // 设置反面为边缘绘制方式
glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); // 设置两面均为顶点绘制方式
#include <iostream>
#include <GL/glut.h>
#include <math.h>
const GLfloat Pi = 3.1415926536f;
const GLfloat factor = 0.1f;
void myDisplay(void) {
glClear(GL_COLOR_BUFFER_BIT);
glPolygonMode(GL_FRONT, GL_FILL);/*设置正面为填充模式*/
glPolygonMode(GL_BACK, GL_LINE);/*设置反面为线性模式*/
glFrontFace(GL_CCW); /*glFrontFace函数设置逆时针方向为正面
CCW(counterclockwise逆时针)
CW(clockwise顺时针)*/
glBegin(GL_POLYGON); /*按逆时针绘制一个正方形,在左下方*/
glVertex2f(-0.5f, -0.5f);
glVertex2f(0.0f, -0.5f);
glVertex2f(0.0f, 0.0f);
glVertex2f