我正在使用OpenGL绘制凸多边形。然后我做同样的事情,但使用GL_LINE_LOOP。 我遇到的问题是线路并不总是连接起来。我怎样才能确保线路始终连接?
在下面的照片中,Iv以绿色突出显示,连接的角落以红色突出显示,而不是。我希望他们都像绿色的那样。
http://img249.imageshack.us/i/notconnected.png/
由于
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
x ++;
glLineWidth(50.0);
glPushMatrix();
glTranslatef(250,250,0);
glBegin(GL_POLYGON); //Begin quadrilateral coordinates
//Trapezoid
glColor3f(255,0,0);
glVertex2f(-10,0);
glVertex2f(50,0);
glColor3f(255,100,0);
glVertex2f(100,50);
glVertex2f(mouse.x - 250,mouse.y - 250);
glVertex2f(-30,50);
glEnd(); //End quadrilateral coordinates
glBegin(GL_LINE_LOOP); //Begin quadrilateral coordinates
//Trapezoid
glColor3f(0,0,255);
glVertex2f(-10,0);
glVertex2f(50,0);
glVertex2f(100,50);
glVertex2f(mouse.x - 250,mouse.y - 250);
glVertex2f(-30,50);
glEnd(); //End quadrilateral coordinates
glPopMatrix();
glBegin(GL_QUADS); //Begin quadrilateral coordinates
glVertex2f(0,0);
glColor3f(0,255,0);
glVertex2f(150,0);
glVertex2f(150,150);
glColor3f(255,0,0);
glVertex2f(0,150);
glEnd(); //End quadrilateral coordinates
答案 0 :(得分:2)
您正在寻找的是称为端点上限/缓解。 OpenGL doesn't support this natively,见14.100
使用宽线(线宽50)可以解决问题。您可能想要try using OpenGL tesselation。这个例子可能看起来有点多,但我认为Java2D形状和OpenGL tesselation之间存在一些有价值的接口,这可能会以某些重写/重新思考为代价来解决您的问题。