matlab - 如何用孔表示多边形?

标签 matlab polygon

使用顶点在向量(2*1 或 1*2 矩阵)中顺时针或逆时针排序的多边形通常很流行。但是,如何表示向量中有孔的多边形?

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

多边形是二维的,我在 MATLAB 中编程。

编辑 1:我要计算 visibility graph这些多边形(带孔或不带孔)。

最佳答案

正如其他人所提到的,带孔的多边形可以表示为外部边界,加上零个或多个内部边界,所有这些边界都相互不重叠*。如果您使用非零 winding number要确定内部/外部,请务必将内部边界指定为与外部边界相反的方向(外部为逆时针,内部为顺时针,反之亦然),以便孔内的轮廓积分为零。

仅供引用,这种定义/表示形式已在 OpenGIS 简单要素规范 (PDF) 中正式化。

就表示而言:

我可能有一个由 K Nx2 矩阵组成的元胞数组,其中元胞数组中的第一个元素是外部边界,而元胞数组中的其余元素(如果有的话)是内部边界。我会使用元胞数组,因为每个边界上的点数可能不同。

*nonoverlapping = 个别点除外,例如方形内的钻石:

alt text alt text

关于matlab - 如何用孔表示多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1046542/

相关文章:

matlab - 传递数组,没有开销(最好是 "by reference"),以避免在 matlab 中复制复杂的代码块?

matlab - 使用和理解 MATLAB 的 TreeBagger(随机森林)方法

python - 使用 tkinter 跟踪 Canvas 上每个多边形的每个点

javascript - 来自多边形的连接顶点,如何获得新的多边形

javascript - 如何简化复杂的多边形?

javascript - 如何在 Google map v3 上添加和删除多边形?

matlab - 给定矩阵的 LUP 分解,如何在 MATLAB 中找到行列式?

MATLAB:如何在同一张图上绘制多个函数的图形?

matlab - Windows docker容器中已编译的Matlab故障

python - 如何生成面积相等但边不同的简单多边形