Даны два сегмента одной и той же окружности :A=[a1, a2] и B=[b1, b2] с:
Как я могу узнать, перекрываются ли эти два сегмента круга? (т.е. если они пересекаются или касаются хотя бы в одной точке)
Примеры:
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 °, но я не уверен, что это охватывает все случаи, и мне было интересно, есть ли элегантная формула.