thisのような点の密なグラフを取得し、それを連結した凸多角形のグラフに変換しようとしています。ポリゴンは接続している間はできるだけ大きく、シンプルでなければなりません。得られたグラフは、経路探索に使用されます。誰かが私を正しい方向に向けることができますか?連結された凸多角形のグラフを生成
答えて
。 lurker &に参加することは難しいです。
私は、次の技術を使用して終了:
まず、距離変換を作成します。ここで説明したアルゴリズム[リンクできません]を使用して、この[リンクできません]のような画像が生成されました。次に、DTの流域変換を作成して領域に分割します。これにはいくつかの作業が必要ですが、現在は[リンクできません]のように表示されます。次に、各領域のペアを接続するポリラインの中点を使用してウェイポイントグラフを作成します。
流域分割は、バンディングの原因とエイリアシングを注意、まだ完璧ではないが、私は181のエリアと、この128×128マップの中間地点281で終わります。
これはあなたが尋ねたものではないが、ここでは、この2次元経路計画問題を解決するためのいくつかの他のアイデアです:
使用A *は。これにより、衝突のない最短経路が得られます。ビットマップを単純化しなくても、パフォーマンスは正常です。
sampling-based roadmapを使用してください。これは、ポリゴンとは別の離散表現です。検索スペースが小さいので、ビットマップ全体をトラバースして、すべてのポイントをロードマップに接続できることを確認できます。 コンパクトロードマップが重要な場合(ただし、短いパスはありません)、visibility roadmapの手法を使用できます。
とにかくグラフ表示とグラフ検索に対処する必要があるため、これらの手法はポリゴン抽出よりもはるかに簡単です。私はその問題のためのいくつかのSOの質問掘り起こさ:スペースは(おそらくツールを使用して)ポリゴンによってマッピングされた場合には
を、それが凸多角形に分割することができますか検索可能な他の表現。これはまた、ラバルで議論されている:私はリンクを投稿することができないということは非常に迷惑です
- 1. 凸多角形の生成方法
- 2. 主成分凸多角形
- 3. Python:最小凸多角形?
- 4. ランダム凸多角形の生成方法は?
- 5. 2つの凸多角形の交点
- 6. OpenGLの非凸多角形の概要
- 7. 複数の凸多角形交差
- 8. Cudaの凸多角形アルゴリズムですか?
- 9. 単純凸と単純非凸多角形の差
- 10. 多数の小さな凸多角形の中に一般的な多角形を細分する
- 11. 多角形グラフを生成する方法
- 12. 大きな領域を凸多角形に分割するアルゴリズム
- 13. 重複する凸多角形の検索
- 14. 画像から生成された三角形の三角形をつくる
- 15. 凸多角形のベクトルの交点の度合いを調べる
- 16. 単純な閉じた多角形カーブ生成アルゴリズム
- 17. は、私はポイントの次のセットを持ってoutter凸多角形
- 18. 非凸多角形のジオ座標からエリアを計算する
- 19. 生成された一意のIDに値を連結
- 20. Dynamicalyで生成されたPHP多次元連想配列
- 21. Java:円で作成された多角形から星を作成
- 22. 凸多角形はどのように表示できますか?
- 23. ネストされた経路を持たない多形関連イベント
- 24. 最も速い水平線<->凸多角形交差アルゴリズムですか?
- 25. Excelシートで生成されたグラフの形状を変更する
- 26. 作成多くの三角形が
- 27. 単調多角形のDelaunay三角形
- 28. 角度フィルタ - 連結された2つのフィールドを検索
- 29. 三角形を生成するネストされたループ、間違った方法
- 30. 多角形のグループからのSTConvexHull()多角形
これは以前に尋ねられなかったとは思いません。最初に検索してください。これはおそらくあなたにいくつかのアイデアを提供します。または、見つかった解決策がお客様の要件に合わない理由を説明することで、より良い質問を策定できます。 –
スタークラフトマップのように疑わしく見える... –
まさにスタークラフトマップです。これは、ナビゲーションメッシュのトップダウンビューで、2Dコリジョンマップとして使用するための設定です。私は潜在的なフィールドを使用してローカル衝突回避を行うことができますが、ローカル最適化を避けるためには実際の経路探索の解決策が必要です。 本質的には、共有エッジの中点をパスファインドするために凸多角形が必要です。三角形も同様に機能しますが、より多くの点が得られます。 – Anthony