确定2D中给定区域边界中点的好方法是什么?确定2D中给定区域边界中的点
假设给出了一个嵌套列表,其中列出了两个坐标为的列表,例如,
{ {x1,y1}, {x2,y2}, {x3,y3} }
当然,实际的嵌套列表会有比点3多的点,这些点与平面中给定的区域相关联。 例如,嵌套列表可以确定平面中的磁盘。然后,输出应该是对应于一个圆圈的嵌套列表。
我不希望任何图像识别材料应用于可能的情节。我想要嵌套列表上的操作。
确定2D中给定区域边界中点的好方法是什么?确定2D中给定区域边界中的点
假设给出了一个嵌套列表,其中列出了两个坐标为的列表,例如,
{ {x1,y1}, {x2,y2}, {x3,y3} }
当然,实际的嵌套列表会有比点3多的点,这些点与平面中给定的区域相关联。 例如,嵌套列表可以确定平面中的磁盘。然后,输出应该是对应于一个圆圈的嵌套列表。
我不希望任何图像识别材料应用于可能的情节。我想要嵌套列表上的操作。
听起来像你想要某种插值技术。 http://en.wikipedia.org/wiki/Interpolation
我不认为插值与它有任何关系。 – andand 2013-02-24 21:15:33
此答案是基于@andand评论。信用就是他的全部。
如果我有所谓的“区域”嵌套列表,二维坐标表,我将它写
Needs["ComputationalGeometry`"]
regionhull = ConvexHull[ region ]
获得“凸包”,但“凸形轮廓”给我们的指标嵌套列表中的列表按逆时针顺序对应于区域的凸边界。因此,需要一个合适的步骤来制作所需的输出:
regionboundary = region[[ regionhull ]]
但是,仍然不完整。在我看来,“凹壳”算法将是更一般的解决方案。有人会知道Mathematica的凹形壳体吗?我可能会为此发布一个额外的问题。
下面,我示出了图以了解从
的指南中提取的“计算几何包”被发现的凹和凸包算法在
http://reference.wolfram.com/mathematica/ComputationalGeometry/tutorial/ComputationalGeometry.html
** 附录 **
包“alphahull”可以解决找到凹区域边界的问题。它说明在这里找到:
http://cran.r-project.org/web/packages/alphahull/vignettes/alphahull.pdf
存储库中的软件包alphahull:http://cran.r-project.org/web/packages/alphahull/ – fcpenha 2013-02-25 01:58:26
是否有任何理由凸包算法将无法正常工作?凹壳算法呢? – andand 2013-02-24 21:13:16