OpenGL 绘制凹多边形

leopard19891022 2011-10-30 08:00:26
这段程序显示的是一片黑,到底哪里出了问题呢?
我要绘制“凹”多边形
#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;
}
...全文
409 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
leopard19891022 2011-10-31
[Quote=引用 1 楼 dizuo 的回复:]

凹多边形,首先需要分割成凸多边形。
google opengl 三角形镶嵌 http://blog.csdn.net/yqxx/article/details/6318679
[/Quote]
我才刚刚学,能不能给我讲点原理性的,并结合代码的解释一下。多谢啦
回复
ryfdizuo 2011-10-30
凹多边形,首先需要分割成凸多边形。
google opengl 三角形镶嵌 http://blog.csdn.net/yqxx/article/details/6318679
回复
相关推荐
发帖
其它技术问题
创建于2007-09-28

3849

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2011-10-30 08:00
社区公告
暂无公告