2016-07-03 8 views
0

私はタイルベースのゲームを作っています。接続されたコンポーネントのラベル付けの結果に基づいてポリ頂点を計算する

接続されたコンポーネントのラベル付けアルゴリズムを使用して、接続されたすべての領域を見つけることができます。

しかし、今私が抱えている問題は、接続された各領域のポリ頂点を計算する方法です。例えば

enter image description here

すべてYELLOWのタイルが同じAREAのものであり、連結成分のラベリングアルゴリズムの助けを借りて、私は各タイルの全ての(x、y)の情報を知って見ることができるように。

そして今、黄色の領域ポリゴン(時計回り)のポリゴン頂点配列を生成したいと思います。

enter image description here

このため何か良いアルゴリズムがありますか?

任意の提案は、私が最終的にこのポストに基づいて解決策を見つけるいくつかのより多くの研究を行った後、

答えて

0

:)おかげで理解されるであろう。ここではjava-merge-adiacent-rectangles-into-a-polygon

は、一般的に私の解決策の処理シーケンスである:

  • タイルのすべてのエッジをEdgeArrayに抽出します。
  • EdgeArrayに重複しているすべてのエッジを削除します。 これはleaviですNGのみマージされたポリ輪郭のエッジは私が欲しい
  • 接続尾、尾に頭に頭からすべてのエッジ...
  • は、すべての頂点が辺

から指し、それは最終的だピックアップ時計回りのPolyVerticesArrayが必要です。

enter image description here

関連する問題