![]() |
如何用孔表示多边形?
通常使用在向量(2 * 1或1 * 2矩阵)中将其顶点按CW或CCW排序的多边形。但是,如何在向量中声明带孔的多边形?
我将在这些多边形上应用各种处理,因此我想要一种可以轻松或高效地工作的表示方式(即,如何在程序中声明这种多边形以简化算法?) 多边形是2D的,我正在用MATLAB编程。 编辑1:我要计算这些多边形(有孔或无孔)的[URL="http://en.wikipedia.org/wiki/Visibility_graph"]可见度图[/URL] 。 回答: 正如其他人提到的那样,带孔的多边形可以表示为外部边界,再加上零个或多个内部边界,所有这些边界相互不重叠*。如果使用非零[URL="http://en.wikipedia.org/wiki/Winding_number"]绕组数[/URL]确定内部/外部,请确保在与外部边界相反的方向上指定内部边界(外部为逆时针,内部为顺时针,反之亦然),以使轮廓积分在内部为零孔。 仅供参考,这种定义/表示形式已经在OpenGIS简单功能规范( [URL="http://portal.opengeospatial.org/files/829"]PDF[/URL] )中进行了形式化。 就表示形式而言: 我可能会有一个K Nx2矩阵的单元格数组,其中单元格数组中的第一个元素是外部边界,而单元格数组中的其余元素(如果有)是内部边界。我将使用单元格数组,因为每个边界上的点数可能不同。 *非重叠=除非个别点,例如正方形内的菱形: [IMG]https://farm4.static.flickr.com/3615/3672548588_3e692bbe81_o.png[/IMG][IMG]https://farm4.static.flickr.com/3581/3671787239_e329081253.jpg?v=0[/IMG] [url=https://stackoverflow.com/questions/1046542]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 23:20。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.