Delphi-Quellcode:
function getShortestRotation(const AngleA, AngleB: Integer): Integer;
var
Small, Big: PInteger;
begin // Parameter in [0..360]
if AngleA < AngleB then
begin
Small := @AngleA;
Big := @AngleB;
end else
if AngleA > AngleB then
begin
Small := @AngleB;
Big := @AngleA;
end else
Exit(0); // = (Result = 0; Exit)
Result := (360-Big^) + Small^;
if Result > Big^ - Small^ then
Result := (Big^ - Small^);
if (AngleA + Result) mod 360 <> AngleB then
Result := -Result;
end;
Edit1: Ungetestet, bin ingame, aber so ca. sollte das klappen
Edit2: Getestet, scheint zu klappen! Ist es das, was du brauchst?