Хочу порівняти кути і отримати уявлення про відстань між ними. Для цього додатка я працюю в градусах, але він також працював би для радіанів та градів. Проблема кутів полягає в тому, що вони залежать від модульної арифметики, тобто 0-360 градусів.
Скажіть, один кут - 15 градусів, а один - 45. Різниця - 30 градусів, а кут 45 градусів більший, ніж 15 градусів.
Але це виходить з ладу, коли у вас, скажімо, 345 градусів і 30 градусів. Хоча вони порівнюють належним чином, різниця між ними становить 315 градусів замість правильних 45 градусів.
Як я можу це вирішити? Я можу написати алгоритмічний код:
if(angle1 > angle2) delta_theta = 360 - angle2 - angle1;
else delta_theta = angle2 - angle1;
Але я вважаю за краще рішення, яке уникає порівняння / розгалуження, і повністю покладається на арифметику.