Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#17

Re: Kreisförmige Bewegung eines Objektes

  Alt 13. Sep 2006, 14:18
Zitat von benst:
Das habe ich zuerst auch gedacht und das geht vermutlich auch gut. Sauber programmiert ist das aber (wie ich finde) nicht, weil es irgendwann zum Überlauf kommt.
Wenn du jetzt statt der 360 eine schöne Zweierpotenz nutzt, am Besten sogar noch in einen Datentypen perfekt reinpassend (z.B. Byte=256, Word=65536, ... ), dann kannst du das "langsame" MOD auch weglassen und höchstens mit einem netten AND arbeiten

Delphi-Quellcode:
Var Grad: Byte; {0..255}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc(Grad, 2);
  Label1.left := X0 + round (cos(Pi/128 * Grad) * XR);
  Label1.Top := Y0 - round (sin(Pi/128 * Richtung * Grad) * YR);
end;
oder halt mit belibigen Zweierpotenzen und AND:
Delphi-Quellcode:
Var Grad: Integer; {z.B.: 0..1023}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Grad := (Grad + 2) and $03FF;
  Label1.left := X0 + round (cos(Pi/512 * Grad) * XR);
  Label1.Top := Y0 - round (sin(Pi/512 * Richtung * Grad) * YR);
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat