Einzelnen Beitrag anzeigen

benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#12

Re: Kreisförmige Bewegung eines Objektes

  Alt 12. Sep 2006, 19:18
Für kontinuierliches Drehen:
Anstatt:
Inc(Grad, 2);
folgendes:
Grad:=(Grad+2) mod 360;
... und
if Grad = 360 then Timer1.Enabled := false
weglassen.
Also so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  XR := 40;
  YR := 40;
  X0 := Label1.left - XR;
  Y0 := Label1.top;
  Grad := 0;
  Richtung := 1 //1 = mathematische pos. Drehsinn (gegen Uhrzeigersinn), -1 = entsprechend anders herum
  Timer1.Enabled := true
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Grad:=(Grad+2) mod 360;
  Label1.left := X0 + round (cos(2*Pi/360 * Grad) * XR);
  Label1.Top := Y0 - round (sin(2*Pi/360 * Richtung * Grad) * YR);
end;
(Für sehr große Kreise Grad:=(Grad+1)mod 360, falls es ruckelt.)
  Mit Zitat antworten Zitat