如何使用openGL检查Polygon是凹面还是凸面?

时间:2016-08-30 18:16:44

标签: opengl find polygon convex concave

如何使用openGL检查Polygon是凹还是凸? 我从.txt文件中获取点作为输入,然后我用这些点绘制多边形,然后问题就出现了。我需要一个算法来检测多边形的类型..凹面或凸面。

void drawPoints() {
glClear(GL_COLOR_BUFFER_BIT); //Clear display window.
if (points.size()<2) {
   glPointSize(3.0);
   glBegin(GL_POINTS);
}
else {
   glLineWidth(3.0);
   glBegin(GL_LINE_LOOP);
}


   for (int i = 0; i<(int)points.size(); i++) {
   Point& p_i = points[i];
   glVertex2f(p_i.GetX(), p_i.GetY());
}



glEnd();
glFlush(); //Process all OpenGL routines as quickly as possible.

}

1 个答案:

答案 0 :(得分:2)

  

如何检查多边形是凹还是凸?

如果对于在任意两个顶点之间绘制的任何线条,多边形被定义为凸面,则线条的任何点都不会发生在多边形的(填充部分)之外。这是对集合凸性的定义的推广。

那么你如何测试呢?通常的方法是确定多边形的凸包(例如,使用Gift Wrapping algorithm),然后测试多边形的所有边缘是否恰好与其凸包一致。

  

使用openGL

不。 OpenGL只是绘制的东西。它不适用于处理几何图形(超出绘制图形所需的几何图形)。