AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Mehrere Objekte auf einer Ellipsenbahn kreisen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Objekte auf einer Ellipsenbahn kreisen lassen

Ein Thema von rabbitRUN · begonnen am 30. Nov 2004
Antwort Antwort
rabbitRUN

Registriert seit: 11. Sep 2003
14 Beiträge
 
#1

Mehrere Objekte auf einer Ellipsenbahn kreisen lassen

  Alt 30. Nov 2004, 13:12
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:
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;
In den jeweiligen Arrays sind halt die zuvor selbst eingetragenen Werte (Startposition und länge der Achsen)

Hier nochmal zwei Auszüge aus der Fachklasse, wobei diese eigentlich nicht für das Problem verantwortlichs ein sollte, oder ?

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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 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