向量法判断点是否在多边形内部
方法
- 如图所示(1),当p点在多边形内部时候相邻向量叉乘后的方向是一致的,如(1)图中AP×BP、BP×CP、CP×DP、DP×EP、EP×AP的方向一致。
- 如图所示(2),当p在多边形外部时候AP×BP与DP×EP的方向不一致
代码
// 使用向量法判断点是否在多边型内部
#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
// 定义点
struct Point2d{
double x;
double y;
// 构造
Point2d(double _x, double _y):x(_x), y(_y){
}
// 定义减法
Point2d operator-(Point2d _point){
return Point2d(this->x - _point.x, this->y - _point