Кратчайшее расстояние между двумя градусными отметками на окружности?

Я ищу формулу для нахождения кратчайшего расстояния в градусах между двумя градусными отметками на окружности: например, 30 градусов и 170 градусов (140 градусов).

Два градуса могут быть практически любым действительным числом, и не обязательно от 0 до 360 (может быть отрицательным или намного больше 360, например -528,2 и 740 (что составляет 171,8 градуса)). Однако расстояние всегда должно быть <= 180 градусов и> = 0 градусов.

Звучит достаточно просто. Но я пытался найти хорошее решение для этого, и я пробовал много другого кода, но ничего, что я нашел до сих пор, не работает во всех случаях, которые я пробовал. Я работаю на c ++. У кого-нибудь есть идеи?

10
задан Joe Lyga 29 February 2012 в 20:09
поделиться