Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form auf einer Kreisbahn kreisen lassen (https://www.delphipraxis.net/43316-form-auf-einer-kreisbahn-kreisen-lassen.html)

Helmi 1. Apr 2005 14:34


Form auf einer Kreisbahn kreisen lassen
 
Hallo Jungs,

ich möcht eine Form animieren und möchte diese auf einer Kreisbahn kreisen lassen.
Nicht die ganze Kreisbahn entlang sondern nur einen bestimmten Sektor.

Ich hab mir das so vorgestellt:

Ich gebe einen Endpunkt an z. B. (50/50) und der Startpunkt soll die aktuelle Koordinate des Form sein (Form.top/Form.left).

Ich berechne mir also die Differenz der beiden Punkte und davon die Hälfte - also den Radius.

So weit so gut - nur wie kann ich jetzt die form auf der Kreisbahn mit dem berechneten Radius von dem Startpunkt zum Endpunkt bewegen lassen?

Hat jemand einen Ansatz?

franktron 1. Apr 2005 14:45

Re: Form auf einer Kreisbahn kreisen lassen
 
Form.Top=X und Form.Left=Y

jfheins 1. Apr 2005 14:48

Re: Form auf einer Kreisbahn kreisen lassen
 
Müsste in etwa so gehen:
Delphi-Quellcode:
for i := 180 downto 0 do
begin
  Form1.Left := Drehpunkt.X + cos(i) * Radius
  Form1.Top := Drehpunkt.Y + sin(i) * Radius;
end;
(Psedocode, ich glaub' sin und cos brauchen Bogenmaß usw.)

Helmi 1. Apr 2005 15:01

Re: Form auf einer Kreisbahn kreisen lassen
 
Hallo,

Danke für deinen Code.

Ich hab ihn etwas umgestellt:
Delphi-Quellcode:
  for i := 360 downto 0 do
    begin
      Form1.Left := Trunc(Mittelpunkt.X + (cos(DegToRad(i)) * Radius));
      Form1.Top  := Trunc(Mittelpunkt.Y + (sin(DegToRad(i)) * Radius));

      sleep(50);
    end;

3_of_8 1. Apr 2005 19:33

Re: Form auf einer Kreisbahn kreisen lassen
 
Sleep würde ich nicht verwenden, da damit afaik das ganze Programm angehalten wird. Bastle lieber einen Timer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz