Как рассчитать минимальное вращение между двумя подшипниками
С учетом двух подшипников от 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)