4

ポリゴンのエッジを滑らかにしようとしています。これは、ユーザーがズームインおよびズームアウトできるマッピング アプリケーション用です。高ズームではすべての詳細は必要ないので、ポリゴンを滑らかにしてポイントの数を減らします。すべてのポイントを繰り返し処理し、最後のポイントから X の距離内にあるポイントを削除します。ここで、X は、結果の画面上の適切な 1 ピクセルです。

いくつかのケースを除いて、これはうまくいくようです。たとえば、ユーザーがズームインすると、詳細を非同期にロードしながらベクトルを拡大します。追加の詳細が読み込まれている間、ユーザーには次の画像のようなものが表示されます。

問題を示す拡大ベクトル画像

正方形のベクター ポリゴンの角が、うっかり丸くなってしまいました。

私が探しているのは、コーナーなどの一部の機能を維持しながら、ポリゴンを描画するポイントの数を減らすスムーズな、またはサイズ変更のアルゴリズムです。

4

2 に答える 2

3

Douglas-Peuckerアルゴリズムのようなものを使用できるかもしれません。

全体的な形状を「あまり」変更しないポイントを削除することで、ポリラインを単純化するために使用できます (許容値が「大きすぎる」とはどういう意味かを制御します)。

これにより、ポリラインの「直線っぽい」部分に沿ったポイントが削除され、鋭い機能(コーナーなど)はそのまま残ると予想されます。

お役に立てれば。

于 2011-11-26T00:54:04.610 に答える
1

ポイントの両側にある 2 本の線によって形成される角度を確認し、角度が指定されたしきい値を下回っている場合にのみポイントを削除できます。

于 2011-11-26T08:45:50.723 に答える