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:
Horst_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,
Sinspin hat folgendes geschrieben : |
Das ist ja malwieder geil, vielen Dank. |
Danke für das Lob.
Sinspin hat folgendes geschrieben : |
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:
Mathematiker - Do 13.11.14 20:24
Hallo,
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,
Horst_H hat folgendes geschrieben : |
... 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.
Horst_H hat folgendes geschrieben : |
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
Horst_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,
Horst_H hat folgendes geschrieben : |
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; TrackBar1.Max:= 150000; TrackBar1.position:= TrackBar1.Max; Label1.Caption:= DateTimeToStr(now); TrackBar1Change(Self); end;
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
Mathematiker hat folgendes geschrieben : |
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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!