Entwickler-Ecke

Open Source Projekte - Sonnensystem und Komet Tschurjumow


Mathematiker - Do 13.11.14 13:44
Titel: Sonnensystem und Komet Tschurjumow
-Hallo,
aus gegebenen Anlass, d.h. der sensationellen Landung von Philae auf dem Kometen Tschurjumow-Gerassimenko :zustimm: , fragt man sich vielleicht, wo sich der Komet im Verhältnis zur Erde gerade befindet.

Das kleine Programm stellt für ein eingegebenes Datum die Orte der Planeten, ausgewählter Kleinplaneten, Kometen und Planetoiden dar.
Möchte jemand das Programm um seinen Lieblingskometen oder -planetoiden erweitern :wink: , so muss er nur in der Liste (auf dem Formular) die Werte ergänzen und neu kompilieren.
Die Einträge sind:
Zitat:
Name des Objektes
Länge des Perihels in °
große Halbachse in AE
numerische Exzentrizität
letzter Durchgang im Perihel
Umlaufzeit in a

Allerdings wird die Bahnneigung nicht berücksichtigt.

Beste Grüße
Mathematiker

Edit 1: Die Farben ändern sich nicht mehr nachträglich. :wink:
Edit 2: user profile iconHorst_Hs Verbesserungen eingebaut und Objektliste erweitert.
Edit 3: Überlauf der Jahreszahlen bei Encodedate korrigiert.


Sinspin - Do 13.11.14 16:59

Das ist ja malwieder geil, vielen Dank.

Hatte gestern schon an Dich gedacht und überlegt ob ich mal Frage wie sich die Gummiente visualisieren lässt.

€: Was aber schon bei der vorgen Version ordentlich genervt hat ist, dass sich mit jedem Objekt das ich an- oder ausknipse die Farben von allen ändern. Ich habe zwar zwei Augen, aber das heißt nicht das ich mit dem linken die ganze zeit die Karte im Auge behalte und mitbekommen wo die Bahn hinzugekommen ist. Ich blicke nach dem Anlicken zurück und wundere mich das die Dinger alle ihr Bahn geändert haben.

Ich bin sicher Du bekommst das schöner hin.


Tastaro - Do 13.11.14 17:06

Sehr cool. Danke.


Mathematiker - Do 13.11.14 17:20

Hallo Sinspin,
user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:
Das ist ja malwieder geil, vielen Dank.

Danke für das Lob.

user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:
Was aber schon bei der vorgen Version ordentlich genervt hat ist, dass sich mit jedem Objekt das ich an- oder ausknipse die Farben von allen ändern. ...

Du hast Recht, das nervt. Ich habe es geändert.
Die Farben werden jetzt aus der Nummer des Objektes in der Liste ermittelt. Damit ändert es sich nicht mehr.

Beste Grüße
Mathematiker


Sinspin - Do 13.11.14 17:36

Was für eine Reaktion! Noch keine 20 Minuten vergangen und schon geändert! :flehan:


Ralf Kaiser - Do 13.11.14 20:16

Hallo,

In diesem Zusammenhang:

Delphi hatte schon einmal etwas mit der Rosetta-Mission zu tn:

https://community.embarcadero.com/index.php/blogs/entry/delphi-begins-its-10year-journey-to-the-origins-of-the-solar-system-36

Ciao,
Ralf


Mathematiker - Do 13.11.14 20:24

Hallo,
user profile iconRalf Kaiser hat folgendes geschrieben Zum zitierten Posting springen:
Delphi hatte schon einmal etwas mit der Rosetta-Mission zu tn:
https://community.embarcadero.com/index.php/blogs/entry/delphi-begins-its-10year-journey-to-the-origins-of-the-solar-system-36

Danke. Das ist für mich eine völlig unerwartete Information.
Voller Vergnügen :wink: werde ich in den nächsten Tagen meinen "Lieblingen", die mir oft mit "Delphi? Och nee, warum müssen wir das machen?" kommen, dies mitteilen. :dance2:

Beste Grüße
Mathematiker

Nachtrag: Ich habe einmal etwas gegoogelt.
Rosetta startete am 2.März 2004. Da gab es noch kein Delphi 2005 usw. D.h., es wurde noch Delphi 7 oder früher verwendet. Das macht es noch schöner. :beer:


Horst_H - Sa 15.11.14 17:06

Hallo,

weil die CPU-Belastung unter Linux/Lazarus so hoch war, habe ich das Programm modifiziert.Es ist ja auch ursprünglich wohl von 2002.
Es werden ja die statischen Orbitalbahnen ständig neu gezeichnet, was ja nicht sein muss.
Durch die Verwendung von decodeDate geht es nur bis zum Jahr 65535 und Einstellen kann man nur von 1..9999.
Maximales deltaT = 4*365,25= 1461 Tage. Dadurch wandert die Erde extrem langsam und man kann Sedna bei 107 AE sich bewegen ansehen.
Die Belastung ist unter Windows, egal ob Lazarus oder Turbo Delphi, minimal = 0% im Taskmanager.

Gruß Horst


Mathematiker - Sa 15.11.14 17:21

Hallo Horst,
user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
... habe ich das Programm modifiziert. ...

Und zwar deutlich verbessert. Danke. Auf die Idee, die Bahnen nur einmal zu zeichnen, hätte ich auch kommen können. Bin es aber nicht.

user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
Durch die Verwendung von decodeDate geht es nur bis zum Jahr 65535 und Einstellen kann man nur von 1..9999.

Auch das ist ein wesentliche Verbesserung. Sedna bewegt sich sonst wirklich ziemlich langsam. :wink:

Beste Grüße
Mathematiker


Mathematiker - Mo 17.11.14 21:06

Hallo,
im ersten Beitrag habe ich die von user profile iconHorst_H vorgenommenen, sehr guten Verbesserungen eingebaut und ein paar kleine Anpassungen durchgeführt.
Die Objektliste ist erweitert. Außerdem habe ich die Bahnparameter auf die aktuellen, von http://ssd.jpl.nasa.gov/sbdb.cgi#top angegebenen geändert.

Beste Grüße
Mathematiker


Horst_H - Mo 17.11.14 21:33

Hallo,

wow ist das jetzt schnell unter Linux/wine.
Irgendwie muss man nach die Zeit in den Griff bekommen.Bei 4 Jahren/ Zeitschritt ist man schnell über die 10000 Jahrmarke hinweg und bei jeder Größenänderung gibt es Mecker, weil encodedate nur bis zum Jahr 9999 funktioniert.
Vielleicht sollte man die Jahre selbst verwalten. Date/ Datum auf Jahr 1.1.1600..31.12.2199 ( 0 geht ja nicht ) normieren, um die Schaltjahre richtig zu haben, und die Differenz zum wirklichen Jahr separat verwalten.Sozusagen 400 Jahres Segmente mit TdateTime Offset.

Gruß Horst


Mathematiker - Mo 17.11.14 22:30

Hallo,
user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
Bei 4 Jahren/ Zeitschritt ist man schnell über die 10000 Jahrmarke hinweg und bei jeder Größenänderung gibt es Mecker, weil encodedate nur bis zum Jahr 9999 funktioniert.

Ich habe es korrigiert, in dem ich Encodedate in der Version 3 herausgenommen habe; mit einem Rückgriff auf das Julianische Datum und meiner Methode kalende1, die entsprechend der Monate korrekt das Datum ändert.
Da das Julianische Datum ebenso wie TDatetime je Tag um 1 vor- bzw. zurückzählt, bestimme ich FDatum durch Addition der Differenz von Julianischem Datum der eingebenen Zeit und dem JD von heute.

Delphi-Quelltext
1:
2:
3:
4:
  FJuldat := JulDat(FYear, FMonth, FDay);
  decodedate(now,_year,_month,_day);
  _Juldat := JulDat(_Year, _Month, _Day);
  FDatum  := now+FJuldat-_Juldat;

Funktioniert perfekt. Man kann sogar zu negativen Jahreszahlen zurückgehen.
Allerdings! Dies ist eine programmtechnische Lösung. Mit der Realität hat dies wenig zu tun. Zur Berechnung von Planetenpositionen, mit mehr als 100 Jahren Abweichung von heute, braucht man andere Algorithmen. Bei den Planetoiden ist es noch schlimmer. Die Kometenbahnen ändern sich oft schon nach einem Umlauf.
Aber das Programm stürzt nicht mehr ab. Das ist schon etwas.

Ich werde vielleicht das Timerintervall von 10 ms auf 20 ms hochsetzen. Mir läuft es jetzt schon fast zu schnell ab.
Über das Hinzufügen des Planetoiden Kerstin in die Objektliste hat sich meine Frau gefreut. :wink:

Beste Grüße
Mathematiker


Delete - Di 18.11.14 15:11

Das Datum kann man schnell ändern mit einer TrackBar.

Beispiel:

Mit TrackBar1.Min:= -150000; // -150000 = 23.04.1489
und
TrackBar1.Max:= 150000; // 150000 = 7.9.2310
kann man 820 Jahre abdecken.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm2.FormCreate(Sender: TObject);
begin
TrackBar1.Min:= -150000//  -150000  =  23.04.1489
TrackBar1.Max:= 150000// 41961 = 18.11.2014  // 150000 = 07.09.2310
TrackBar1.position:= TrackBar1.Max;
Label1.Caption:= DateTimeToStr(now);
TrackBar1Change(Self);
end;

//Focus auf TrackBar:   mit < und > - Tasten tageweise ändern
procedure TForm2.TrackBar1Change(Sender: TObject);
var ext : Extended; 
begin
ext:= StrToFloat(IntToStr(TrackBar1.Position) +',000000000');
Label3.Caption:= DateToStr(ext);
Label2.Caption:= FloatToStr(ext);
end;


Horst_H - Di 18.11.14 15:22

Hallo,

ich möchte nicht 3E5 mal die Taste drücken.Präzise ein Datum zu treffen fällt sehr schwer.
Die drei Edit-Felder sind für genaue Eingaben besser geeignet.Wie stelle ich den 15.08.4711 ein ?

Gruß Horst


Kawa - Sa 22.11.14 01:11

Danke, Super Programm


Delphi-Laie - Do 27.11.14 10:50

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
werde ich in den nächsten Tagen meinen "Lieblingen", die mir oft mit "Delphi? Och nee, warum müssen wir das machen?" kommen, dies mitteilen.


Das bedeutet vermutlich, daß Ihr Informatiklehrer in Sachsen (noch?) die Freiheit habt, die Entwicklungsumgebung selbst wählen zu dürfen, nicht wahr?

Der tendenziell-generelle Bevormundungswahn der Kultusministerialbürokratien wird aber auch diesen Zustand nicht ewig währen lassen, fürchte ich. Das Mißtrauen gegen die eigene, angestellte Klientel und die Hybris, sich selbst als die eigentlichen Problemerkenner und -löser zu halten, führt dazu.

Davon abgesehen, wären auch bei mir Delphi und Lazarus meine Wahl. Mit dem MS Visual Studio wurde ich bis heute nicht warm, nicht mal lauwarm.


Mathematiker - So 14.06.15 23:31

Hallo,
aus gegebenen Anlass, Philae ist nach 7 Monaten auf dem Kometen Tschurjumow-Gerasimenko wieder erwacht,
siehe http://www.dlr.de/dlr/desktopdefault.aspx/tabid-10394/663_read-13900/#/gallery/2563
kann man sich ja in diesem kleinen Programm ansehen, wo sich der Komet und damit die Sonde im Moment befindet. Bis zum Perihel ist es nicht mehr weit.

Schön ist nur, dass die ganzen Spötter und Schwarzseher, die den Untergang der Sonde und damit die "sinnlose" Vernichtung von extrem viel Geld herbeiredeten, wahrscheinlich sogar ersehnten, nicht recht haben.
Der Supererfolg der ESA geht weiter. Und am 12.Juli folgt die nächste Sensation. Dann fliegt "New Horizons" am Pluto vorbei.

Beste Grüße
Mathematiker