У меня есть проект с датчиком компаса, который каждую секунду выводит курс в градусах. Изменение значения отображается для пользователя.
Таким образом, когда датчик поворачивается, например, с 283 градусов до 285 градусов, программа отображает «2 вверх», а когда он поворачивается от 163 градусов до 152 градусов, программа отображает «11 вниз».
Моя проблема - угол поворота превышает 359 градусов. Когда компас изменяется, например, с 358 градусов на 1 градус, программа отображает «357 вниз», но я бы хотел, чтобы он говорил «3 вверх». Я не знаю, как этого добиться.
Это также проблема, если пойти другим путем, например, от 5 до 359, вместо «6 вниз» возвращается «354 вверх».
Вот мой код:
# Input from compas sensor:
oldhdg = 358
newhdg = 1
# Calculating and displaying the value change:
if oldhdg == newhdg:
change = 0
flowdir = 'stay'
elif oldhdg > newhdg:
change = oldhdg-newhdg
flowdir = 'down'
elif newhdg > oldhdg:
change = newhdg-oldhdg
flowdir = 'up'
print(f'{change} {flowdir}')
вывод:
357 down
>>>