Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: Kürzester rotationsweg bei einem Kreis?

  Alt 30. Dez 2012, 17:39
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?
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (30. Dez 2012 um 17:50 Uhr)
  Mit Zitat antworten Zitat