如何检查多边形是凹面还是凸面?使用 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 只是绘制 东西。它不适用于处理几何图形(超出绘制它所需的范围)。
如何使用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 只是绘制 东西。它不适用于处理几何图形(超出绘制它所需的范围)。