1. 首页
  2. 课程学习
  3. C++/C
  4. 分治法解决凸包问题(C语言实现)

分治法解决凸包问题(C语言实现)

上传者: 2019-04-30 11:49:05上传 RAR文件 1.49KB 热度 59次
先预排序,预排序后最左和最右的点肯定是凸包中的点。然后可以递归的从内向外扩展凸包,在当前直线的2侧寻找最高点,最高点肯定在凸包中,这里涉及到一些数学知识:a,首先定义射线p1到p2的左侧:若p1p2p构成的顺序是逆时针,称p在射线的左侧b,三角形p1p2p3的面积等于下列行列式的一半:仅当p3在射线p1p2左侧时这个值才为正。由此我们很容易求p1,p2左侧的最高点(离直线最远的点,这个点即凸包向外扩展得到的新顶点),得到一个最高点后,就得到了2条新边,继续向外扩展
用户评论