OpenGL 绘制凹多边形
这段程序显示的是一片黑,到底哪里出了问题呢?
我要绘制“凹”多边形
#include<stdlib.h>
#include<gl\glut.h>
using namespace std;
void display(void)
{
int i = 0;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
GLfloat *v1,*v2,*v3;
v1 = (GLfloat*)malloc(sizeof( GLfloat)*3);
v1[0] = 1.0; v1[1] = 5.0; v1[2] = 0.0;
v2 = (GLfloat*)malloc(sizeof( GLfloat)*3);
v2[0] = 2.0; v2[1] = 2.0; v2[2] = 0.0;
v3 = (GLfloat*)malloc(sizeof( GLfloat)*3);
v3[0] = 6.0; v3[1] = 3.0; v3[2] = 0.0;
glPolygonMode(GL_FRONT,GL_LINE);
glBegin(GL_POLYGON);
glEdgeFlag(GL_TRUE);
glVertex3f(1.0,2.0,0.0);
glEdgeFlag(GL_FALSE);
glVertex3fv(v2);
glEdgeFlag(GL_TRUE);
glVertex3fv(v3);
glEnd();
glFlush();
}
void init(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}
int main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE |GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,100);
glutCreateWindow("Concave Polygon");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}