凸多边形点集顺时针排序
1、凸多边形点集顺时针排序
参考博客:https://www.cnblogs.com/dwdxdy/p/3230156.html
2、判断点是否在三角形内
#include <iostream>
using namespace std;
const double eps = 1e-5;
struct point{
double x, y;
};
double a(point a, point b, point c){
point A, B;
A.x = b.x-a.x;
A.y = b.y-a.y;
B.x = c.x - a.x;
B.y = c.y - a.y;
return abs((A.x*B.y-B.x*A.y)/2.0);
}
int main(){
point A, B, C, P;
A.x = 1;
A.y = 1;
B.x = 10;
B.y = 2;
C.x = 5;
C.y = 10;
P.x = 100;
P.y = 100;
double sum = a(A,B,C);
double k = 0;
k+=a(A,B,P);
k+=a(B, C, P);
k+=a(A,C, P);
cout << sum <<endl;
cout << k << endl;
if ((abs(k-sum)>eps)) cout<<"No"<<endl;
else cout << "YES"<<endl;
return 0;
}