有谁知道如何确定同一个圆的两个扇区是否相交?
假设我有一个扇形 A,用起始角 A1 和结束角 A2 表示,还有一个扇形 B,用起始角 B1 和结束角 B2 表示。所有角度范围为 0..2*PI 弧度(或 0..360 度)。
如何确定角A是否与角B相交?
我尝试了两个矩形相交问题的变体,如下所示:
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
提前致谢。