Mathematica中的连接点

时间:2009-11-27 10:51:06

标签: wolfram-mathematica

我有一个以图形显示的点集合:

alt text http://img69.imageshack.us/img69/874/plc1k1lrqynuyshgrdegvfy.jpg

我想知道是否有任何命令可以沿xx和yy轴自动连接它们。通过以下图片可以更好地理解这一点: alt text http://img341.imageshack.us/img341/5926/tr53exnkpeofcuiw40koyks.jpg  (我不是在问自己如何实现算法!)。

由于

3 个答案:

答案 0 :(得分:4)

我怀疑答案是否定的,没有这样的命令。尽管如此,写一些东西会很有趣,即给定一个点列表,输出相应的行。我想这只是一个问题:

对于每个唯一的x坐标,获取具有该x坐标的点的y坐标列表,并从最小y坐标到最大y坐标。然后重复y坐标。

如果你这样做,将它作为后续发布在此处会很有趣。或者如果你想提出这个问题,我相信你会得到一些不错的解决方案。

答案 1 :(得分:4)

我投票给dreeves' suggestion。它不使用“内置”功能,但它是使用函数式编程和级别规范的单线程。实现是:

gridify[pts : {{_?NumericQ, _?NumericQ} ...}] :=
  Map[Line, GatherBy[pts, #]& /@ {First, Last}, {2}]

答案 2 :(得分:2)

您正在寻找的一些内容位于ComputationalGeometry Package。特别是,ConvexHull将为您提供逆时针方向列出的外部点。此时,您可以使用Line将它们连接在一起。内部路径有点棘手,我认为没有完全匹配。但是,DelaunayTriangulation最接近。它基本上将你的点列表分成几组三角形。我不知道有一个内置函数可以将它分解为矩形。