2011-07-09 13 views
1

彼らが交差しない、つまり、私は、ランダムにシンプル生成しようとしているいくつかの困難を抱えている、曲線はランダムに生成されたシンプル(非交差)曲線

を設計することは基本的には、問題が上で発生ポイントのランダムな組み合わせを与えられたということですX、Y平面上で、どのように交差しない曲線を作成するような方法でそれらを接続できますか? (私はJAVAでこれをやっています)

今私の唯一のアイデアは、Line2Dクラスとの交差点を再帰的に開始して交差点をチェックし、次の点を試す前に交差している場合はパスを終了することです。誰も助けることができますか?

ありがとうございました!

-edit-

申し訳ありませんが、私はまだ形状の任意の様々なを取ることができ、曲線を生成することができるようにしたいことを言及するのを忘れてしまいました。例えば、カーブが+/- sqrt関数のような形をしている場合、カーブはそれ自身で「カーブ」することができます

+0

現在、あなたは何をしていますか?そしてあなたのカーブはどのように見えますか?単一の曲線または複数の曲線?かなりまっすぐな、または特別な特性? – Howard

答えて

0

右下の最もポイントを見つけます。それがスタートです。次に、最初の点とその点の間の線が最小の勾配(0度に最も近い)である点を見つけます。その点を次の点として選んでください。最小の勾配で新しいポイントを選択することを続けます。その順番でそれらの点を通る曲線を描画します。

1

convex hullを見つけることが1つのアプローチです。 algorithmsがいくつかあります。

+0

これは、基本的に凸形状の形を取る形状/曲線を基本的に生成しますか?それとも、非常に乱雑な形状、つまり三角波のようなものでもかまいませんか? – randomafk

+0

画像はこちら[http://en.wikipedia.org/wiki/Convex_hull#Intuitive_picture]です。 – trashgod

+0

グラハムのスキャン[ここ](http://yoshihitoyagi.com/projects/mesh/convexhull/grahamsscan/index.html)のインタラクティブなデモンストレーションがあります。 – trashgod

関連する問題