目录

GIS 计算中的凸包、凹包、内凸包等问题求解

1. 最小凸包 convex hull

1.1 凸包的定义(convex)

  • 几何定义:
    • 如果一个面是 convex,那它边上的任意两点相连出来的线段都落在面的内部。
    • 如果一个面是 convex,那它内部任意两点相连都将面划分为半空间 half-space
  • 表象:所有两个边所成的内边角不大于180度
  • 通俗的表象:将点的集合看成一根根柱子,用一根皮筋圈套住所有的柱子形成的皮筋形状就是凸包的形状。

1.2 最小凸包的定义 convex hull

针对一群点的集合,其最小面积的包含所有点的凸集合形成的面

1.3 特性或用途

  • 凸包是一个确定的、包容的、平滑的、优雅的图形。
  • 实际上凹包用的更多。。。

1.4 凸包计算步骤(滚球法)

  • 求极心 P0
  • 找出屏幕最左边的一个点,这个点一定是凸包边的一部分
  • 选中 P1,寻找下一个点 P2
    • 求极心到上一个选中的点的角度 P0->P1,目的是作为内外侧判断的基准
    • 用已选定的点轮训所有的点,求角度 P1->P2,然后求P1->P2与P0->P1的角度差
    • 选中角度差最小的点 P2
    • 使用 P2 循环以上过程

演算视频: