5

グラフィックに表示されたポイントのコレクションがあります。

代替テキスト http://img69.imageshack.us/img69/874/plc1k1lrqynuyshgrdegvfy.jpg

xx 軸と yy 軸に沿って自動的に接続するコマンドがあるかどうか知りたいです。これは、次の図を見るとよく理解できます: 代替テキスト http://img341.imageshack.us/img341/5926/tr53exnkpeofcuiw40koyks.jpg (アルゴリズムを自分で実装する方法を尋ねているわけではありません!)。

ありがとう

4

3 に答える 3

4

ドリーブスの提案に賛成です。「組み込み」関数は使用しませんが、関数型プログラミングとレベル仕様を使用したワンライナーです。実装は次のとおりです。

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

答えはノーだと思います。そのようなコマンドはありません。ただし、それを行うために何かを書くことは興味深いでしょう。つまり、ポイントのリストが与えられた場合、対応する行を出力します。それは次の問題になると思います:

一意の x 座標ごとに、その x 座標を持つポイントの y 座標のリストを取得し、最小から最大の y 座標までの線を作成します。次に、y 座標について繰り返します。

もしそうなら、フォローアップとしてここに投稿すると面白いでしょう。または、それを問題にしたい場合は、いくつかの優れた解決策が得られると確信しています.

于 2009-11-29T03:46:03.007 に答える
2

あなたが探しているもののいくつかはComputationalGeometryパッケージにあります。特に、ConvexHull反時計回りにリストされた外側のポイントを提供します。その時点でLine、それらを相互に接続するために使用できます。内側のパスは少しトリッキーで、完全に一致するものはないと思います。しかし、DelaunayTriangulationが最も近くなります。基本的に、ポイントのリストを三角形のセットに分割します。ただし、長方形に分割する組み込み関数はわかりません。

于 2009-11-29T05:28:35.580 に答える