如何用孔表示多边形?

Kam*_*ely 7 matlab polygon

使用多边形通常很受欢迎,它们的顶点在向量(2*1或1*2矩阵)中按CW或CCW排序.但是,如何在向量中描述带孔的多边形?

我将对这些多边形应用各种过程,所以我想要一种表示我可以轻松或有效地工作的方法.(即如何在我的程序中声明那种多边形以便简化我的算法?)

多边形是2D,我在MATLAB中编程.

编辑1:我将计算这些多边形的可见性图(有或没有孔).

Jas*_*n S 6

正如其他人所提到的,带孔的多边形可以表示为外部边界,加上零个或多个内部边界,所有这些都是相互不重叠的*.如果使用非零绕数以确定内部/外部,确保在相反的方向,即外部边界(逆时针方向为外部和顺时针室内,或反之亦然)来指定内部边界,使得轮廓积分是零内的孔.

仅供参考,在OpenGIS简单特征规范(PDF)中已经形式化了这种定义/表示.

至于代表:

我可能有一个K Nx2矩阵的单元阵列,其中单元阵列中的第一个元素是外部边界,单元格数组中的其余元素(如果有的话)是内部边界.我会使用一个单元格数组,因为每个边界上可能没有相同数量的点.

*非重叠=除个别点外,例如正方形内的钻石:

替代文字 替代文字