我在图形中显示了一组点:
替代文字 http://img69.imageshack.us/img69/874/plc1k1lrqynuyshgrdegvfy.jpg
我想知道是否有任何命令可以沿 xx 和 yy 轴自动连接它们。看下图可以更好地理解这一点: alt text http://img341.imageshack.us/img341/5926/tr53exnkpeofcuiw40koyks.jpg (我不是问自己如何实现算法!)。
谢谢
我在图形中显示了一组点:
替代文字 http://img69.imageshack.us/img69/874/plc1k1lrqynuyshgrdegvfy.jpg
我想知道是否有任何命令可以沿 xx 和 yy 轴自动连接它们。看下图可以更好地理解这一点: alt text http://img341.imageshack.us/img341/5926/tr53exnkpeofcuiw40koyks.jpg (我不是问自己如何实现算法!)。
谢谢
我怀疑答案是否定的,没有这样的命令。不过,写一些东西来做这件事会很有趣,即,给定一个点列表,输出相应的行。我想这只是一个问题:
对于每个唯一的 x 坐标,获取具有该 x 坐标的点的 y 坐标列表,并从最小 y 坐标到最大 y 坐标画一条线。然后重复 y 坐标。
如果您这样做,将其作为后续内容发布在这里会很有趣。或者,如果您想提出这个问题,我相信您会得到一些不错的解决方案。
我投票赞成dreeves 的建议。它不使用“内置”函数,但它是使用函数式编程和级别规范的单线。一个实现是:
gridify[pts : {{_?NumericQ, _?NumericQ} ...}] :=
Map[Line, GatherBy[pts, #]& /@ {First, Last}, {2}]
您正在寻找的一些内容在ComputationalGeometry
Package中。特别是,ConvexHull
会给你逆时针方向列出的外点。此时您可以使用Line
将它们连接在一起。内部路径有点棘手,我认为没有完全匹配。但是,aDelaunayTriangulation
最接近。它基本上将您的点列表分解为一组三角形。不过,我不知道有一个内置函数可以将它分成矩形。