![]() |
Image auf Kreisbahn bewegen
Hallo,
ich will ein Image auf einer Form bewegen. Das Image soll sich in Kreis bewegen. Ich habe jetzt spontan keine Idee wie ich das machen könnte. Der Mittelpunkt des Images soll sich auf dieser Kreisbahn bewegen. Wie kann ich das Problem lösen??? MFG Christian18 |
Re: Image auf Kreisbahn bewegen
Du musst die Kreispunkte berechnen (geht aus Mittelpunkt und Radius via Bresenham-Algorithmus). Dann den Offset des Bildes zu seinem Mittelpunkt (- 1/2x höhe, -1/2x breite), und dann schiebst Du diesen Offset einfach auf den Kreispunktenentlang.
|
Re: Image auf Kreisbahn bewegen
Da das Image wohl nicht jeden Pixel eines Kreises einzeln abfahren soll, würde ich lieber zu Sinus & Kosinus in Abhängigkeit von der Zeit greifen :) .
|
Re: Image auf Kreisbahn bewegen
Hier mein Vorschlag...
(i ist ein globale Variable)
Delphi-Quellcode:
Gruß
procedure TForm1.Timer1Timer(Sender: TObject);
var xoffset, yoffset, xradius, yradius, aufloesung: Integer; begin xoffset:=100; yoffset:=100; xradius:=100; yradius:=100; aufloesung:=20; i:=(i+1) mod round(2*pi*aufloesung); Image1.Top:=yoffset+(xradius div 2)+round(xradius*sin(i/aufloesung))-(Image1.height div 2); Image1.Left:=xoffset+(yradius div 2)+round(yradius*cos(i/aufloesung))-(Image1.width div 2); end; Ben |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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 by Thomas Breitkreuz