2013-02-24 56 views
1

确定2D中给定区域边界中点的好方法是什么?确定2D中给定区域边界中的点

假设给出了一个嵌套列表,其中列出了两个坐标为的列表,例如,

 { {x1,y1}, {x2,y2}, {x3,y3} } 

当然,实际的嵌套列表会有比点3多的点,这些点与平面中给定的区域相关联。 例如,嵌套列表可以确定平面中的磁盘。然后,输出应该是对应于一个圆圈的嵌套列表。

我不希望任何图像识别材料应用于可能的情节。我想要嵌套列表上的操作。

+2

是否有任何理由凸包算法将无法正常工作?凹壳算法呢? – andand 2013-02-24 21:13:16

回答

2

此答案是基于@andand评论。信用就是他的全部。

如果我有所谓的“区域”嵌套列表,二维坐标表,我将它写

Needs["ComputationalGeometry`"] 
    regionhull = ConvexHull[ region ] 

获得“凸包”,但“凸形轮廓”给我们的指标嵌套列表中的列表按逆时针顺序对应于区域的凸边界。因此,需要一个合适的步骤来制作所需的输出:

regionboundary = region[[ regionhull ]] 

但是,仍然不完整。在我看来,“凹壳”算法将是更一般的解决方案。有人会知道Mathematica的凹形壳体吗?我可能会为此发布一个额外的问题。

下面,我示出了图以了解从

https://gis.stackexchange.com/questions/1200/concave-hull-definition-algorithms-and-practical-solutions

enter image description here

的指南中提取的“计算几何包”被发现的凹和凸包算法在

http://reference.wolfram.com/mathematica/ComputationalGeometry/tutorial/ComputationalGeometry.html

** 附录 **

包“alphahull”可以解决找到凹区域边界的问题。它说明在这里找到:

http://cran.r-project.org/web/packages/alphahull/vignettes/alphahull.pdf

+0

存储库中的软件包alphahull:http://cran.r-project.org/web/packages/alphahull/ – fcpenha 2013-02-25 01:58:26