1

2Dで特定の領域の境界内の点を決定するための良い方法は何ですか?

2つの座標のリストを含むネストされたリストが与えられたとします。

     { {x1,y1}, {x2,y2}, {x3,y3} }

もちろん、実際のネストされたリストには、平面内の特定の領域に関連付けられている3つよりもはるかに多くのポイントがあります。たとえば、ネストされたリストは、プレーン内のディスクを決定できます。次に、出力は円に対応するネストされたリストになります。

可能なプロットに画像認識のものを適用したくありません。ネストされたリストでの操作が欲しいのですが。

4

2 に答える 2

2

この回答は @andand コメントに基づいています。クレジットはすべて彼のものです。

「領域」と呼ばれるネストされたリストがあり、2次元座標のリストがある場合、それを書く「凸包」を取得します

    Needs["ComputationalGeometry`"]
    regionhull = ConvexHull[ region ]

しかし、"ConvexHull" は、ネストされたリスト内のリストのインデックスを、領域の凸境界に対応する反時計回りの順序で提供します。したがって、必要な出力を作成するには、追加の手順が必要です。

    regionboundary = region[[ regionhull ]]

しかし、それでも、この答えは不完全です。「凹包」アルゴリズムがより一般的な解決策になるように私には思えます。Mathematica の凹包について何か知っている人はいますか? そのために追加の質問を投稿する場合があります。

以下に、から抽出された凹包アルゴリズムと凸包アルゴリズムを理解するための図を示します

https://gis.stackexchange.com/questions/1200/concave-hull-definition-algorithms-and-practical-solutions

ここに画像の説明を入力

「Computational Geometry Package」のチュートリアルは次の場所にあります。

http://reference.wolfram.com/mathematica/ComputationalGeometry/tutorial/ComputationalGeometry.html

**補遺**

パッケージ「alphahull」は、凹状領域の境界を見つける問題を解決できます。その説明はここにあります:

http://cran.r-project.org/web/packages/alphahull/vignettes/alphahull.pdf

于 2013-02-24T22:20:57.257 に答える
0

ある種の補間技術が必要なようです。http://en.wikipedia.org/wiki/Interpolation

于 2013-02-24T21:09:05.880 に答える