如何检查多边形是凹面还是凸面?使用 openGL

How to check if the Polygon is Concave or Convex?using openGL

如何使用openGL检查多边形是凹面还是凸面? 我从 .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.

}

How to check if the Polygon is concave or convex?

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

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

using openGL

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