
通过分治策略,可以解决凸包问题(C语言实现)。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
首先进行预排序,预排序完成后最左侧和最右侧的点必然位于凸包内部。随后,可以采用递归的方式,从凸包的内部向外逐步扩展,在当前直线两侧寻找最高点。这些最高点必定位于凸包之中。这一过程涉及一些基本的数学原理:首先,定义射线p1到p2的左侧;若p1、p2和p构成的顺序是逆时针,则p点位于该射线的左侧。其次,计算三角形p1 p2 p3的面积,其值为行列式的一半。仅当点p3在射线p1p2的左侧时,该面积才为正值。基于此,我们可以轻松地确定p1和p2左侧的最高点(即离直线最远的点),这个点就是凸包向外扩展时新增的一个顶点。获得一个最高点后,就会产生两条新的边线,并继续以同样的方式向外扩展。
全部评论 (0)
还没有任何评论哟~


