3

私はこのアルゴリズムを調べてきましたが、かなり簡単です。ただし、囲まれたポリゴンでの使用方法については混乱しています。私が見たすべての例は、開いた端を持つ線/曲線を扱っています。プロセスを視覚化して1本の線を正しく描画し、それを繰り返してポリゴンの詳細を再キャプチャすると、少なくともポリゴンの側面が常に開いたままになるため、機能しません。

最初に 4 つのポイント (最も遠い topLeft、TopRight、Bottomright、BottomLeft のポイント) を作成し、これらの間の頂点でアルゴリズムを実行してポイント インデックスにする実装を作成することを考えています。

したがって、元のパス配列で一番下の線のインデックスが 40 と 80 である場合、そこで反復し、40 ~ 80 の点だけでその線の類似性をキャプチャし、すべての側面が完了するまで次の側面に移動します。

私は自分自身をばかにし、非常に複雑にすることが知られているので、これが合理的な実装であるかどうか疑問に思っていましたか?

私は基本的に、以下に示すGPXデータ削減の実装を複製しようとしています:

ここに画像の説明を入力 ここに画像の説明を入力

4

1 に答える 1

5

ウィキペディアでアルゴリズムをざっと読んだ後、囲まれたループの簡略化された形状を簡単な方法でキャプチャできるようです。

始点「A」と終点「Z」を同じにしてメソッドを呼び出します。

'A' と 'Z' が同じ点である場合、直線 AZに垂直な最も遠い点を見つける代わりに、始点/終点からのユークリッド距離に従って最も遠い点を探すように、アルゴリズムを変更します。

ここで、アルゴリズムは A->M および M->Z で再帰します。ここで、M は A から最も遠い点です (これは Z でもあります)。これで、アルゴリズムは正常に実行できます。

于 2012-07-23T21:20:48.543 に答える