Anybody know how to determine whether two sectors of the same circle intersect?
Let's say I have a sector A, expressed by starting and ending angles A1 and A2, and a sector B, expressed by starting angle B1 and ending angle B2. All angles ranges from 0..2*PI radians (or 0..360 degrees).
How to determine whether angle A intersects with angle B?
I've tried a variation of the two rectangle intersection problem like the following:
if(a1 <= b2 && a2 >= b1) {
// the sectors intersect
} else {
// the sectores doesn't intersect
}
This method is fine as long as no sectors crosses the 0 degrees point. But if any one sector crosses it, the calculation becomes incorrect.
The underlying problem is in creating a directional (heading-based) augmented reality application. Sector A is the object whereas Sector B is the viewport. The angles are obtained as follow:
A0 = bearing of the object
A1 = A0 - objectWidthInRadians
A2 = A0 + objectWidthInRadians
B0 = heading of the user (device)
B1 = B0 - viewportWidthInRadians
B2 = B0 + viewportWidthInRadians
Thanks in advance.