5

我在图形中显示了一组点:

替代文字 http://img69.imageshack.us/img69/874/plc1k1lrqynuyshgrdegvfy.jpg

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

谢谢

4

3 回答 3

4

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

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

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

于 2009-11-29T03:46:03.007 回答
4

我投票赞成dreeves 的建议。它不使用“内置”函数,但它是使用函数式编程和级别规范的单线。一个实现是:

gridify[pts : {{_?NumericQ, _?NumericQ} ...}] :=
  Map[Line, GatherBy[pts, #]& /@ {First, Last}, {2}]
于 2009-11-30T14:05:46.297 回答
2

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

于 2009-11-29T05:28:35.580 回答