Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Image auf Kreisbahn bewegen (https://www.delphipraxis.net/86478-image-auf-kreisbahn-bewegen.html)

Christian18 14. Feb 2007 19:41


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

Phoenix 14. Feb 2007 19:44

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.

Khabarakh 14. Feb 2007 19:47

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 :) .

benst 14. Feb 2007 19:53

Re: Image auf Kreisbahn bewegen
 
Hier mein Vorschlag...
(i ist ein globale Variable)
Delphi-Quellcode:
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;
Gruß
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