>>>General sort of question:
>>>
>>>I'm drawing a compass and need to determine the 'shortest' direction in which to rotate the compass (clockwise or anti-clockwise) between old and new bearings (in degrees).
>>>In most cases it is simple but when the old and new values span the 0 degree point those solutions don't work.....
>>>
>>>Anyone got a foolproof algorithm (language doesn't matter - just the logic)
>>
>>Why not simply
>>
>>
dif=(angle2-angle1)%360
>>if dif>180
>> dif=dif-360
>>endif
Great. Although I'd need to add a 'diff = 0 - diff' for my purposes (ie reverse the sign).
>
>FWIW, after mulling over Al and Gregory's suggestions I woke up this morning with the same idea - but you beat me to it!
This chance to think like a mathematician again (screw special cases, this can't be complicated, read the specs and ignore inelegant solutions) was a real refreshment.