Entwickler-Ecke

Multimedia / Grafik - Parabellaufbahn


noname91 - Mo 10.09.07 18:52
Titel: Parabellaufbahn
moin leuts,

bin neu hier und hätt da eine frage:

ich will eine sonne in einer parabellaufbahn über den schirm flitzen lassen, das hab ich geschafft, mit massig timern welche die steigung variiren, so dass es einer parabel nahe kommt.

geht das auch direkt? das die sonne einer parabel folgt, ohne das man für jeden abschnitt eine steigung definieren muss?

thx im voraus.


Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 10.09.2007 um 19:01


Tilo - Mo 10.09.07 20:43

Wie wäre es mit einer formel?
Parabeln haben meines Wissens nach die Form a*(x*b+c)^2 für die Ebene.
Dann kannst Du die Parabel noch im Raum drehen und kippen. Dafür bracuhst Du dann maximal 1 Timer.


noname91 - Mo 10.09.07 20:48

jup, thx, das hab ich hinbekommen.

jetzt will ich das die sonne am ende der bahn invisible wird und der mond visible.

habs mit

Delphi-Quelltext
1:
2:
3:
if sun.left = xx
then moon.visible := true
sun.visible := false


das funzt aber nicht, weil das dann nur für die angegebenen koords klappt.

gibts eine möglichkeit das mit einem timer hinzubekommen?

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Tilo - Mo 10.09.07 21:24

Hast Du Mond und Sonne von der gleichen Klasse abgeleitet? bzw sind Mon und Sonne vom gleichem Typ? Wenn eines der beiden stimmt definiere doch global eine Variable die auf das Object/den Record/.. zeigt welche Körper gezeichnet werden soll.
Immer wenn Du nun Sonne oder Mond zeichnen möchtest machst Du es über diese variable. Sie muss aber global (in Bezug auf den Codebereich welcher für das Zeichnen verantwortlich ist.


Tilo - Mo 10.09.07 21:28

Hast Du Mond und Sonne von der gleichen Klasse abgeleitet? bzw sind Mon und Sonne vom gleichem Typ? Wenn eines der beiden stimmt definiere doch global eine Variable die auf das Object/den Record/.. zeigt welche Körper gezeichnet werden soll.


ene - Di 11.09.07 07:51

Und wenn dann sollte es auch so heißen:


Delphi-Quelltext
1:
2:
3:
4:
If Sun.Position = GanzLinks Then Begin
  Moon.Visible:= True;
  Sun.Visible:= False;
End;


Sonst würde die Sonne immer unsichtbar werden.