>>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!