d = ((d % 360) + 360) % 360;
будет работать, если по модулю вы получите значение от -359 до 359.
Я бы лично поставил это в отдельную функцию, так как это ужасно, как грех.
def mymodulo(n,m):
return ((n % m) + m) % m;
- Первый модуль дает значение от -359 до 359.
- Прибавление увеличивает что-то между 1 и 719.
- Второй модуль возвращает это значение в нужный вам диапазон, от 0 до 359.
Для кода гольф, 29 символов, включая перевод строки в Python:
def f(n,m):return((n%m)+m)%m
Не то чтобы Python действительно нуждался в этом: (-5)%360
дает вам 355 на этом языке: -)