不規則なポリゴンには中心が定義されていないため、これは注意が必要です。ポリゴンは(長方形の場合)凸面であることが保証されているため、衝突を構成するポリゴンのコーナー(元の形状のコーナーまたはエッジの交差を含むことができます)を見つけて、それらを平均してを取得できます。 .. なにか。おそらく「中心」が期待される場所に漠然と近くなり、正多角形の場合はおそらく正確に一致しますが、数学的に何かを意味するかどうかは少し異なります。
私は数学的にいじって、次のことを考え出しました。これは、ポイントが表示されたり消えたりするときの滑らかさの問題を解決します(ヒットボックスの動きによって長方形が三角形になる、またはその逆の場合に発生する可能性があります)。この余分な部分がないと、コーナーを追加および削除すると図心がジャンプします。
ここで、このフープロットを取ります。
プロットは、RとB(赤と青の場合)の2つの長方形を示しています。交差点はエリアG(緑の場合)を一掃します。非加重中心と加重中心(両方とも紫)は、次の方法で計算されます。
(0.225, -0.45): Average of corners of G
(0.2077, -0.473): Average of weighted corners of G
ポリゴンの重み付けされたコーナーは、コーナーの角度のsinによって重み付けされた、コーナーの座標として定義されます。
このポリゴンには、2つの90度の角度、1つは59.03度の角度、もう1つは120.96度の角度があります。(両方の非直角は同じ正弦を持ち、sin(Ɵ)= 0.8574929 .. ..
したがって、重み付けされた中心の座標は次のようになります。
( (sin(Ɵ) * (0.3 + 0.6) + 1 - 1) / (2 + 2 * sin(Ɵ)), // x
(sin(Ɵ) * (1.3 - 1.6) + 0 - 1.5) / (2 + 2 * sin(Ɵ)) ) // y
= (0.2077, -0.473)
提供された例では、違いはあまり目立ちませんが、4gonが3gonにはるかに近い場合、大幅な偏差があります。