同じ円の 2 つのセクターが交差しているかどうかを判断する方法を知っている人はいますか?
開始角度 A1 と終了角度 A2 で表されるセクター A と、開始角度 B1 と終了角度 B2 で表されるセクター B があるとします。すべての角度の範囲は 0..2*PI ラジアン (または 0..360 度) です。
角度 A が角度 B と交差するかどうかを判断する方法は?
次のような2 つの四角形の交差問題のバリエーションを試しました。
if(a1 <= b2 && a2 >= b1) {
// the sectors intersect
} else {
// the sectores doesn't intersect
}
この方法は、セクターが 0 度の点を横切らない限り問題ありません。ただし、いずれかのセクターがそれを超えると、計算が正しくなくなります。
根底にある問題は、指向性 (見出しベース) 拡張現実アプリケーションの作成にあります。セクター A はオブジェクトで、セクター B はビューポートです。角度は次のように取得されます。
A0 = bearing of the object
A1 = A0 - objectWidthInRadians
A2 = A0 + objectWidthInRadians
B0 = heading of the user (device)
B1 = B0 - viewportWidthInRadians
B2 = B0 + viewportWidthInRadians
前もって感謝します。