0
点赞
收藏
分享

微信扫一扫

算法设计与分析——凸包问题(穷举法)

_阿瑶 2022-03-11 阅读 59

穷举法:两点确定一条直线,如果剩余的其他点都在这条直线的同一侧,那么这两个点就是凸包上的点,否则就不是。

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是凸包的一条边

举报

相关推荐

0 条评论