Как рассчитать минимальное вращение между двумя подшипниками

С учетом двух подшипников от 0 до 360 градусов, A и B, каков наиболее эффективный способ расчета минимального вращения, необходимого для достижения A точки B? Вращение может быть по часовой стрелке (положительное) или против часовой стрелки (отрицательное). Минимальное вращение должно быть в любом направлении, которое дает меньшие абсолютные градусы.

Например,

minRotation (30,20) дает -10.

minRotation (350,20) дает 30.

Как сформулировать функцию minRotation(A,B)?

2 ответа

Решение
 D = B - A
 while D < -180   // use "if" operator when angles are normalized to 0..360 range
    D = D + 360
 while D > 180
    D = D - 360

Если у вашего языка есть эквивалентная функция остаток математической библиотеки C, чем

D = remainder( B-A, 360.0)
Другие вопросы по тегам