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;
}
...全文
619 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧