![]() |
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? |
Re: Form auf einer Kreisbahn kreisen lassen
Form.Top=X und Form.Left=Y
|
Re: Form auf einer Kreisbahn kreisen lassen
Müsste in etwa so gehen:
Delphi-Quellcode:
(Psedocode, ich glaub' sin und cos brauchen Bogenmaß usw.)
for i := 180 downto 0 do
begin Form1.Left := Drehpunkt.X + cos(i) * Radius Form1.Top := Drehpunkt.Y + sin(i) * Radius; end; |
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; |
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 03:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz