質問

2Dで定義された暗黙的なスカラーフィールドがあり、2Dのすべてのポイントに対して、正確なスカラー値を計算できますが、その計算はやや複雑です。
そのサーフェスの等値線、たとえば「0」値の線を描画したいと思います。関数自体は連続ですが、「0」アイソラインには複数の連続インスタンスを含めることができ、それらすべてが接続されていることは保証されません。
各ピクセルの値を計算することはオプションではありません。時間がかかりすぎるためです。数秒のオーダーで、これはできるだけリアルタイムである必要があります。

現在使用しているのは、一種の四分木と考えることができる空間の再帰的分割です。スペースの初期の非常に粗いサンプリングを行い、正の値から負の値への遷移を含む正方形が見つかった場合、それを4つの小さな正方形に再帰的に分割し、ピクセルレベルで停止して再度チェックします。正負の遷移は、四隅の正方形をサンプリングすることで検出されます。 うまくいかない場合を除いて、これはかなりうまくいきます。エッジの小さな領域で発生し、正方形の角を横切らないトランジションではトランジション検出が失敗するため、描画される等値線が時々切れます。

この設定で等線描画を行うより良い方法はありますか?

役に立ちましたか?

解決

ここで説明されているアルゴリズムで多くの成功を収めました http://web.archive.org/web/20140718130446/http://members.bellatlantic.net/~vze2vrva/thesis.html 適応等高線(説明したものに類似)について説明します。また、一般的な等高線図に関するその他の問題も説明します。

すべてのピクセルを見ずに、関数のすべての輪郭を見つけることを保証する一般的な方法はありません。非常に小さな閉じた輪郭が存在する可能性があります。この領域では、関数が一般的に負である領域に、関数が正であるピクセルのサイズ程度しかありません。陽性領域内にサンプルを配置できるほど十分にサンプリングしない限り、サンプルが存在することを知る一般的な方法はありません。

関数が十分に滑らかである場合、関数のモジュラスは周囲の領域で小さくなるため、そのような小さな閉じた輪郭がどこにあるかを推測できる可能性があります。その後、これらの地域でのみサンプリングを調整できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top