说明
该博文参考 弱花3kou 的文章 [OpenGL] 绘制并且判断凹凸多边形、自相交多边形
分析
- 凸多边形

- 凹多边形

- 自相交

代码
#include <iostream>
#include <ctime>
#include <math.h>
#include <vector>
using namespace std;
// 定义点
struct Pos {
int x;
int y;
};
// 定义边
struct Edge {
int x1, x2;
int y1, y2;
int vx;
int vy;
int a, b, c;
};
// 定义多边形
struct Poly {
// 点集
int xx[100];
int yy[100];
// 边集
Edge Edges[100];
int plotNums = 0; //点数量
int edgeNums = 0; //边数量
// 记录凹点
int conv = 0;
};
Poly poly;
// 求交点坐标,这里的A、B、C是直线方程 Ax + By + C = 0 的参数,求交点是利用向量叉乘计算得到的
// 具体可查看博客:用叉积求二维直线交点
// https://www.jianshu.com/p/3468c9967fc7
Pos CrossPos(int p1, int p2) {
Pos res;
int A1 = poly.

本文详细介绍了如何使用代码判断一个多边形是否为自相交多边形,包括凸多边形、凹多边形和自相交多边形的定义及判断方法。通过分析代码,展示了如何通过求解直线交点并判断其是否在线段范围内来确定多边形的自相交特性。
最低0.47元/天 解锁文章
4359





