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

Math 确定2D中给定区域边界上的点,math,wolfram-mathematica,computational-geometry,Math,Wolfram Mathematica,Computational Geometry,确定二维给定区域边界上的点的好方法是什么 假设给您一个嵌套列表,其中包含两个坐标的列表,例如: { {x1,y1}, {x2,y2}, {x3,y3} } 当然,实际的嵌套列表将有比3个多得多的点,这些点与平面中的给定区域相关联例如,嵌套列表可以确定平面中的磁盘。然后,输出应该是一个对应于圆的嵌套列表。 我不想把任何图像识别的东西应用到可能的情节上。我希望对嵌套列表进行操作。听起来您需要某种插值技术 这个答案基于@AND和评论。这都是他的功劳。 如果我有一个名为“region”的嵌套

确定二维给定区域边界上的点的好方法是什么

假设给您一个嵌套列表,其中包含两个坐标的列表,例如:

     { {x1,y1}, {x2,y2}, {x3,y3} }
当然,实际的嵌套列表将有比3个多得多的点,这些点与平面中的给定区域相关联例如,嵌套列表可以确定平面中的磁盘。然后,输出应该是一个对应于圆的嵌套列表。


我不想把任何图像识别的东西应用到可能的情节上。我希望对嵌套列表进行操作。

听起来您需要某种插值技术

这个答案基于@AND和评论。这都是他的功劳。

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

    Needs["ComputationalGeometry`"]
    regionhull = ConvexHull[ region ]
但是“凸出”给出了嵌套列表中列表的索引,按逆时针顺序,对应于区域的凸出边界。因此,需要一个附加步骤,以获得所需的输出:

    regionboundary = region[[ regionhull ]]
但这个答案仍然不完整。在我看来,“凹壳”算法将是更一般的解决方案。有人知道Mathematica中的凹壳吗?我可能会就此提出一个附加问题

下面,我展示了一个图,以了解从中提取的凹面和凸面外壳算法

有关“计算几何包”的教程,请访问

**附录**

软件包“alphahull”可以解决查找凹面区域边界的问题。其描述可在此处找到:


凸包算法不起作用有什么原因吗?凹壳算法呢?我认为插值与此无关。存储库中的alphahull包: