穷举法:两点确定一条直线,如果剩余的其他点都在这条直线的同一侧,那么这两个点就是凸包上的点,否则就不是。
1.将点集中的所有点两两配对,组成n(n-1)/2条直线
2.对于每条直线,再检查剩余的(n-2)个点是否在直线的同一侧
判断点p是否在直线p1、p2的左侧还是右侧
设p1、p2的坐标为p1(x1,y1),p2(x2,y2),p1p1的直线方程为:ax+by-c=0
a=y2-y1
b=x1-x2
c=x1*y2-y1*x2
该直线将平面分为2个半平面,一个半平面上的点坐标p(x,y)带入方程,其值为复数,另一半平面的值为正数
3.如果其他点带入方程结果都为同一符号,则说明它们都在直线的同一半平面,从而p1p2是凸包的一条边