私はすべてのボディまたはシェイプが画面上に占める総面積を計算しようとしています。私。もし私が2つの円AとBが交差しているならば、私はユニオンBが(画面上で)カバーする面積を計算したいと思う。
私はchipmunk ドキュメンテーションを読んでいて、Chipmunk API 私が直接使うことができるもの。
The only two methods I found, that might be useful, are these two: pointQueryFirst:layers:group:
and segmentQueryFirstFrom:to:layers:group:
私が考えていたのは、
- 最初のメソッド(pointQueryFirst)を使用して、画面上のすべてのポイントを調べ、このメソッドを呼び出します。ポイントに形状がない場合は、そのポイントを変数に累積します。その変数の値を画面の領域で割って空いている画面の割合を求めます。
- または、2番目のメソッド(segmentQueryFirstFrom)を使用し、画面を半分に分割し、各半分にシェイプが含まれている場合はクエリを実行し、その領域を半分に分割し、それらにシェイプが含まれているかどうかを確認する再帰アルゴリズムを作成します、など...
しかし、私はそれらを使用すると、全体的なパフォーマンスが低下することを期待しています。私が使用できる別のソリューションがありますか?私が見つけられなかった別の方法?どんな助けでも大歓迎です。