проверить, перекрываются ли два отрезка на одном круге

Даны два отрезка круга одного круга: A = [a1, a2] и B = [b1, b2], с:

a1, a2, b1, b2 values in degree between -inf and +inf a1 <= a2 ; b1 <= b2 a2-a1<=360; b2-b1<=360

Как я могу узнать, перекрываются ли эти два сегмента круга? (т.е. если они пересекаются или касаются хотя бы одной точки)

Примеры:

A=[  -45°,    45°]; B=[   10°,   20°] ==> overlap
A=[  -45°,    45°]; B=[   90°,  180°] ==> no overlap
A=[  -45°,    45°]; B=[  180°,  360°] ==> overlap
A=[ -405°,  -315°]; B=[  180°,  360°] ==> overlap
A=[-3600°, -3601°]; B=[ 3601°, 3602°] ==> overlap (touching counts as overlap)
A=[ 3600°,  3601°]; B=[-3601°,-3602°] ==> overlap (touching counts as overlap)
A=[    -1°,    1°]; B=[ 3602°, 3603°] ==> no overlap 

Это похоже на обманчиво простую проблему, но я не могу обернуться вокруг нее. В настоящее время у меня есть основная идея для решения, которое включает в себя разбиение каждого сегмента на два, если он пересекает 0 & # xB0 ;, но я не уверен, охватывает ли это все случаи, и мне было интересно, существует ли элегантная формула.

Ответы на вопрос(3)

Ваш ответ на вопрос