我有一个以图形显示的点集合:
alt text http://img69.imageshack.us/img69/874/plc1k1lrqynuyshgrdegvfy.jpg
我想知道是否有任何命令可以沿xx和yy轴自动连接它们。通过以下图片可以更好地理解这一点: alt text http://img341.imageshack.us/img341/5926/tr53exnkpeofcuiw40koyks.jpg (我不是在问自己如何实现算法!)。
由于
答案 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
最接近。它基本上将你的点列表分成几组三角形。我不知道有一个内置函数可以将它分解为矩形。