在2D中确定给定区域边界中的点

时间:2013-02-24 20:30:04

标签: math wolfram-mathematica computational-geometry

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

假设您获得了一个包含两个坐标列表的嵌套列表,例如

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

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

我不希望任何图像识别内容应用于可能的情节。我想在嵌套列表上进行操作。

2 个答案:

答案 0 :(得分:2)

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

如果我有一个名为“region”的嵌套列表,带有2d坐标的列表,我会得到它的“凸包”

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

但是“ConvexHull”给出了嵌套列表中列表的索引,以逆时针顺序,对应于区域的凸边界。因此,需要一个adittional步骤来产生所需的输出:

    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

答案 1 :(得分:0)

听起来你想要某种插值技术。 http://en.wikipedia.org/wiki/Interpolation