![]() |
Mehrere Objekte auf einer Ellipsenbahn kreisen lassen
Hi, schreibe gerade an einem Programm das mir erlaubt verschiedene Ellipsenbahn mit Hilfe von Shapes darstellen zu lassen. Hänge jetzt jedoch an einem evtl. sehr kleinem Problem, doch ich find dafür einfach keine Lösung deswegen lass ich euch mal ran ;). Das Programm läuft wie folgt ab:
- ich erstelle ein Shape und stelle die benötigten Werte ein damit daraus eine Ellipsenbahn berechnet werden kann -> alles klappt so wie ich es will - ich erstelle das nächste Shape, und zack werden alle Ellipsenbahnen um ca. die Hälfte verkleinert, das geht immer weiter je mehr Bahnen berechnet werden müssen Ich poste mal nur die stellen des Quelltextes wo der Wurm drin sein muss
Delphi-Quellcode:
In den jeweiligen Arrays sind halt die zuvor selbst eingetragenen Werte (Startposition und länge der Achsen)
var
Form1: TForm1; Ellipsenbahn :TEllipsenbahn; Ellipsenbahn2: TEllipsenbahn; x,y,a,b: array of integer; procedure TForm1.Timer1Timer(Sender: TObject); var anfang : Integer; begin for anfang := 0 to i do begin Ellipsenbahn.get_Werte(IntToStr(a[anfang]),intToStr(b[anfang]),IntToStr(x[anfang]),IntToStr(y[anfang]),FloatToStr(i)); Ellipsenbahn.berechne_bahn(x[anfang],y[anfang]); with TShape(FindComponent(NamePrefix + IntToStr(Anfang))) do begin Left := x[Anfang]; Top := y[Anfang]; end; end; end; Hier nochmal zwei Auszüge aus der Fachklasse, wobei diese eigentlich nicht für das Problem verantwortlichs ein sollte, oder ? :o
Delphi-Quellcode:
procedure TEllipsenBahn.get_Werte(a,b,x,y,i:string);
begin a1 := a; b1 := b; xStart := x; yStart := y; multiplikator := i; end; procedure TEllipsenBahn.berechne_bahn(var ox,oy:Integer); begin TGradmass := TGradmass +1; TBogenmass := (TGradmass/180) *(2* pi); xStart := FloatToStr(ox); yStart := FloatToStr(oy); oy := round(StrToFloat(yStart) + StrToFloat(b1)*(cos(TBogenmass)/5)) ; ox := round(StrToFloat(xStart) + StrToFloat(a1)*(sin(TBogenmass)/5)) ; if TGradmass = 360 then TGradmass := 0; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 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