确定2D中给定区域边界点的好方法是什么?
假设您获得了一个包含两个坐标列表的嵌套列表,例如
{ {x1,y1}, {x2,y2}, {x3,y3} }
当然,实际的嵌套列表将具有比3更多的点,这些点与平面中的给定区域相关联。 例如,嵌套列表可以确定平面中的磁盘。然后,输出应该是与圆相对应的嵌套列表。
我不希望任何图像识别内容应用于可能的情节。我想在嵌套列表上进行操作。
答案 0 :(得分:2)
此答案基于@andand评论。信用是他的全部。
如果我有一个名为“region”的嵌套列表,带有2d坐标的列表,我会得到它的“凸包”
Needs["ComputationalGeometry`"]
regionhull = ConvexHull[ region ]
但是“ConvexHull”给出了嵌套列表中列表的索引,以逆时针顺序,对应于区域的凸边界。因此,需要一个adittional步骤来产生所需的输出:
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
答案 1 :(得分:0)
听起来你想要某种插值技术。 http://en.wikipedia.org/wiki/Interpolation