5

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

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

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

4

1 に答える 1

6

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

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

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

于 2008-10-23T21:46:04.317 に答える