凹多边形的切割

凹多边形的分割

算法来源

Elements of Computer Graphics.pdf

算法概述

已知:凹多边形不存在空洞。

  1. 对凹多边形顶点进行编号
  2. 找出凹点
  3. 绘制凹点的延长线(延长线的起点为 凹点的上一个点)
  4. 延长线与凹多边形求交点
  5. 凹点延长线的情况
    1. 延长线与多边形只有一个交点
      1. 保留凹点到交点的线段
    2. 延长线与多边形有多个交点
      1. 保留凹点到每一个交点的最短距离的线段
    3. 延长线互相相交
      1. 根据凹点的出现顺序决定是否能够修改,第一个出现的凹点不可以修改,只能修改第二个出现的点

凹多边形的切割

算法图示结果

凹多边形的切割
凹多边形的切割
凹多边形的切割
凹多边形的切割
凹多边形的切割

本文代码及可视化代码均放在 gitee 码云上 欢迎star & fork