3D-Karte unserer Milchstraße

pmvstrm

Registriertes Mitglied
Moin Bernhard,
Mir ist gerade beim durchsehen aufgefallen, das die Datei tyc_main.dat jede Menge whitespaces enthält die ca. 88 MBytes betragen. Originalgrösse tyc_main.dat 362 MBytes ohne Leerzeichen tyc_main.trim.dat 274 MBytes und gepackt wäre das dann noch immerhin 10 MBytes weniger. Das selbe gilt für die hip_main.dat (originalgroesse 53 MBytes, getrimmt 36 MBytes) also immerhin 17 MBytes Leerzeichen die wir da mitschleppen. Die hip_main.dat kann unser Programm ohne Änderung verarbeiten aber tyc_main.dat nicht (ich glaube da gibst Du eine feste Spaltenbreite an oder?) Ich habe mal die bereinigte tyc_main_dat_trim.dat auf Sourceforce hochgestellt, vielleicht kannst Du ja die Laderoutine von fester Spaltengrösse auf , oder ;separiert umstellen, dann könnte ich das in unseren Kompressor
so einbauen, das die Komprimierte Katalogdatei erst gar keine Leerzeichen enthält.

Gruß, Peter
 
Zuletzt bearbeitet:

Bernhard

Registriertes Mitglied
Hallo Peter,

die Kataloge HIP und TYC werden momentan mit festen Byte-Nummern ausgelesen. Ich kann das aber gerne ändern. Kommasepariert macht immer dann Probleme, wenn man Kommentare mit Kommas speichern will. Wir könnten zusätzlich auch etliche Spalten aus den Katalogen komplett rausnehmen (Farbinformationen usw.). Das Programm verwendet momentan nämlich nur: Nr, Rektaszension, Deklination, Helligkeit und Entfernung.
Gruß
 

Bernhard

Registriertes Mitglied
Hallo Peter,

ich habe jetzt einfach mal ganz "brutal" die Datenmengen reduziert und den Code entsprechend angepasst. Der reduzierte HIP-Katalog wird jetzt um einiges schneller geladen, sowohl aus dem www, als auch beim Programmstart. Vom TYC-Katalog habe ich auch einen reduzierten Katalog erstellt. Schau es Dir einfach mal an. Die reduzierten Kataloge enthalten zwar immer noch Leerzeichen, dafür sind sie aber noch ähnlich wie die vollständigen Kataloge strukturiert und haben auch keine Seperatoren. Die verbleibenden Leerzeichen würde ich gerne so belassen, weil der Code damit übersichlicher bleibt.

Die ursprünglichen Laderoutinen für die vollen Kataloge braucht man jetzt eigentlich nicht mehr, aber bitte lösche sie nicht. Wenn wir später zusätzliche Informationen aus den vollen Katalogen verwenden wollen, sind das wieder hilfreiche Funktionen.
Viele Grüße
 

Bernhard

Registriertes Mitglied
Hallo Peter,

ich hoffe Du bist jetzt nicht sauer, weil ich Deine trim-Datei einfach gelöscht habe, aber ich denke mit den neuen .my3dsc-Dateien sind wir insgesamt einfach besser beraten. Wir sparen dadurch viel Speicherplatz, was den sourceforge-Server entlastet und geraten auch nicht in den Verdacht Material mit Copyright ohne ausreichende Genehmigungen zu verteilen. Welche Rechte zu den verwendeten Katalogen genau gehören weiß ich zwar auch nicht, aber ich fühle mich momentan mit den reduzierten Katalogen deutlich wohler.
Gruß
 

pmvstrm

Registriertes Mitglied
Hallo Bernhard,
Nein ist kein Problem:) (es macht ja auch Sinn) Ich habe gerade deine neuesten Änderungenin ein neues Setup verpackt und einen
32 und 64 Bit Windows Installer erstellt.Beide Installer wurden einer Profilgesteuerten Optimierung (PGO) unterzogen. Damit wird in mehreren
Kompiliervorgängen vom Compiler das schnellste Kompilat ermittelt und letztendlich erstellt. Die Performance sollte jetzt vor allem
auch unter AMD CPU's etwas besser sein.

Gruß, Peter
 

Bernhard

Registriertes Mitglied
Internationalisierung

Hallo Peter,

mit den deutschen Beschriftungen bei den beiden dynamischen Dialogen bin ich aktuell noch gar nicht zufrieden:

1.) Zuerst einmal sollten die Titel geändert werden. Bei der Menüauswahl "Benutzereinstellungen" sollte der Titel des zugehörigen Dialoges ebenfalls "Benutzereinstellungen" heißen. Den kleineren Dialog würde ich im Menü und im Titel einfach "Ansicht" nennen.

2.) Im kleinen Dialog "Ansicht", statt "Vertikale Entfernung" bitte "vertikale Verschiebung". Ebenso "Horizontale Entfernung" bitte in "horizontale Verschiebung" ändern. Im Hinweistext ebenfalls "Entfernung" bitte durch "Verschiebung" ersetzen.

3.) Im großen Dialog "Anzeigeeinstellungen", wie gesagt, Titel bitte ändern und dann:

3a) "Anfang" -> "Beobachtungsstandort"
b) "Sichtline" unbedingt durch "Blickrichtung" ersetzen
c) "Aufgang zum Bezugspunkt" -> "3D Reise in Richtung"
d) "Rechte Aufgang" unbedingt nach "Rektaszension" ändern

Ohne die Änderungen verschrecken wir sonst jeden deutschsprachigen Benutzer mit grundlegenden Kenntnissen in (Amateur)Astronomie.
Viele Grüße
 
Zuletzt bearbeitet:

pmvstrm

Registriertes Mitglied
Hallo Bernhard,

Das ist schlecht, denn das habe ich gerade ebenfalls geändert und habe nun alles fertig.Das Problem betrifft leider nicht nur die Lokalisierungsdateien (.ts / .qm) sondern auch einige Teile im Quellcode selbst, die im gleichen Atemzug mit verändert werden müssen.

Update:
Ich habe gerade (17:33 Uhr) meine neuen Änderungen bezüglich der lokalisierung eingestellt. Am besten Du holst Dir noch nicht die Änderungen, speicherst deine Arbeit zwischen, ziehst dann die Änderungen und schaust nach ob es Sinn macht deine Änderungen (die Du Dir vorher zwischengespeichert hast) noch mit rein müssen oder nicht.

Das ganze war jetzt auch deswegen so Tricky, da Teile von QT (wie Messageboxes sowie freie Texte (z.B in Variablen) beim auslesen des Projektquellcodes
durch das lupdate.exe Utility nicht berücksichtigt werden. Mann muss die Texte die lupdate.exe nicht erkennen kann manuell mittels der Funktion tr("test123")
kennzeichnen.Auch muss man bei den eingebauten Dialogen und Messageboxes aufpassen. Den Text den man Ausgeben will, der wird zwar korrekt übersetzt,
jedoch nicht z.B der OK und Abbrechen Button, das habe ich dahingehend auch angepasst. Besonders tricky waren die Längenabmessugen in den
Formular Labels. Ich musste einige Labels komplett ersetzen und mit trial und Error herausfinden ob die Darstellungslänge der Strings mit der neu erstellten
QM Datei noch passt.

Gruß, Peter
 
Zuletzt bearbeitet:

Bernhard

Registriertes Mitglied
Hallo Peter,

ich habe gerade noch ein paar kleine Änderungen gemacht. Bei den Benutzereinstellungen war das Label "Anfang" ziemlich mißverständlich. Das ist einfach der Beobachtungsstandort.
Gruß
 

Bernhard

Registriertes Mitglied
Hi Peter,

mit "Anfang" meinst Du offensichtlich Anfang der Reise. Ich finde das nur ungünstig für Leute, die das Programm nur als normale Sternkarte benutzen wollen und ich denke diese Option sollten wir uns schon offen halten. Die 3D-Funktion ist vermutlich eher was für Fortgeschrittene. Wir können so den Anwendern unsere Arbeit auch als Portierung von Cartes Du Ciel nach Qt "verkaufen", in der Hoffnung, dass sich vielleicht auch noch andere Entwickler daran beteiligen wollen.
Gruß
 

pmvstrm

Registriertes Mitglied
Hallo Bernhard,

Habe gerade einen neuen Installer mit den Sprachfixes hochgestellt. Ich denke das sieht nun schon ganz vernünftig aus. In ein paar Tagen ist Weihnachten und dann sollten wir die das erste Release offiziell hochstellen. Ich denke wir müssen unsere Sourceforge Projektseite noch mal inhaltlich etwas überarbeiten (und auf English/Deutsch)
übersetzen, damit wir Weltweit besser wahr genommen werden.

Zur Konkurenz
Zur Konkurenz (sie belebt das Geschäft:)) Ich habe Cartes Du Ciel auch mal kurz angeschaut und auch installiert.Soweit ich in der Info sehen kann ist das Programm unter der GPLv2 lizensiert und der alleinige Rechteinhaber ist ein Herr Patrick Chevalley. Also ich mag die GPL Lizenz nicht wirklich, da sie Anwender sowie Drittanbieter
(PlugIns, spezielle Programmversionen u.s.w) zwingt Ihre eigenen Programmierungen rauszurücken.Ich bin da liberaler und mag eher Lizenzen wie die BSD, Apache oder MIT Lizenz.Sie sind sehr einfach zu verstehen, klären das nötigste in Sachen Haftungsschutz und überlassen dem Anwender was er mit der Software machen möchte.

Die Technik von Cartes Du Ciel...
Das Projekt ist genau wie wir auf Sourceforge ansässig und sie nutzen Subversion.Ich habe mir mal zig commits von denen angeschaut und irgendwie ist das immer der Benutzer "pchev" (Patrick Chevalley) der die commits vornimmt. Als ich mir dann deren Quellcode angeschaut habe, da musste ich echt etwas schmunzeln (das ganze Programm ist in Freepascal geschrieben). Deren TYCHO und HIP Kataloge haben ungefähr die gleiche Größen wie unsere, man muss sie jedoch selbst runterladen,entpacken und installieren.Die Darstellungsperformance auf Linux und Windows war eine einzige Ruckeorgie (obwohl nur der Basiskatalog geladen war (hipmain). Es gibt keine Windows 64-Bit Verison, weil deren Entwicklungswerkzeuge Win64 nocht nicht unterstützen (angesichts von fast nur noch 64-Bit CPU's sicher
ein Minuspunkt.Die Win32 Setup.exe wurde mit der Freeware InnoSetup erstellt. Dieser Setup Creator ist nicht Vista/Win7/Win8 (32 und 64-Bit) konform und kann
für den Anwender zum Problem werden (besonders wegen der UAC->User Accout Control).

Mein Fazit bezüglich Cartes Du Ciel
Das Programm ist nett aber nicht besonders leistungsfähig. Die Programmierwerkzeuge der Entwickler sind hoffnungslos veraltet und die meiste Arbeit wird von einer Person erledigt, die Doku und Kataloge sind allerdings gut sortiert aber wir brauchen uns mit unserem Projekt ganz sicher auch nicht verstecken:)

Perspektive für unser Projekt:
PlugIn-Schnittstelle:
Also mir würde ein generelles PlugIn System sehr gut gefallen (ich denke da vor allem an dein Kerrmetriktprojekt oder einen universellen Script-Prozessor (QT hat ja einen Skriptmodul). Mit so einem Scriptprozessor könnte ein Anwender z.B eine Berechnung als JavaScript Datei definieren und ausführen lassen, dabei kann er Zugriff auf alle Public Hauptprogramm und PlugIn DLL's nehmen (z.B deine Kerrmetrik Funktionen). Es dürfte wesentlich einfacher für einen normal sterblichen ein paar Zeilen JavaScript anstatt C/C++ zu programmieren (vor allem muss JavaScript ja nicht kompiliert werden).Auch möglich wäre ein Script Tasmanager, der verschiedene Skripte wiederholt
ausführt (nur so ein Gedanke).

3D-Renderingsystem (meine nächste, große Baustelle)
Wie Du ja weißt, würde ich gerne eine alternative/optionale 3D Darstellung unserer Katalogdaten einbauen.Momentan evaluiere ich dazu die Algorithmen im Bereich Sparse Voxel Octree (SVO). Ein derartiger Ansatz birgt aus meiner Sicht großes Potential, da wir unsere Katalogdaten damit eventuell auf ein Minimum herunterschrumpfen könnten. Es gibt Berichte, in denen einzelne Leute es geschafft haben sollen, Datenmengen von über 5 GByte auf unter 100 MByte zu drücken.Der Trick besteht darin,
das man die Daten in einer Octree Datenbaum speichert anstallt in einer riesigen ASCII Datei. Das Problem ist momentan eigentlich nur (zumindest für mich) wie ich
unsere Katalogdaten gezielt in eine Octree repräsentation umwandeln kann, wenn das gelingt, dann könnte man auch extrem große Kataloge laden und hättem keine
Performanceinbußen, vor allem weil immer nur die Daten des Sichtbereichs angezeigt werden müssen.

Gruß, Peter
 
Zuletzt bearbeitet:

Bernhard

Registriertes Mitglied
ich denke da vor allem an dein Kerrmetriktprojekt oder einen universellen Script-Prozessor (QT hat ja einen Skriptmodul).
Hallo Peter,

da muss ich die Hoffnungen gleich wieder etwas eindämmen. Ein CAS möchte ich in dem Programm definitiv nicht haben. Das würde das Programm zu stark überfrachten und zu einer "eierlegenden Wollmilchsau" machen. Wenn, dann möchte ich für MyAlgebra lieber ein eigenständiges Projekt anlegen.

Ich finde es aber sehr nett und hilfreich, dass Du Dir CdC so genau angesehen hast. Momentan ist das sicher die Meßlatte, an der wir uns messen müssen. Was CdC auch noch sehr gut kann, ist die Berechnung von Planeten-, Kleinplaneten und Kometenpositionen. Es dabei ja naheliegend den Code aus dem Nachbarthema hier http://astronews.com/forum/showthread.php?5102-Sonnensystem-Position-der-Planeten zu verwenden, aber damit gewinnen wir im Vergleich zu CdC praktisch keinen "Blumentopf". Insofern wäre es geschickter, die Quellen, bzw. den Code von CdC bei Bedarf direkt zu verwenden und in Qt-C++ zu implementieren.

Die Internationalisierung haben wir wohl etwas weitgehender und anwenderfreundlicher angelegt als bei CdC.

Was ich für das aktuelle Projekt (My3DSC) noch sehr reizvoll fände, wäre ein Exoplaneten-Katalog. Gerade im 3D-View können sich dann futuristische "Raumfahrer" (SciFi-Fans) bereits Reiserouten ausdenken. Die Darstellung von Neutronensternen wäre eventuell auch ganz interessant.
Gruß
 
Zuletzt bearbeitet:

pmvstrm

Registriertes Mitglied
Guten Morgen Bernhard,

Das sind ja jetzt alles kann und keine muss Features.Über OpenGL hatten wir uns ja schon verständigt und eine PlugIn Schnittstelle, hält das Hauptprogramm ja auch schön kompakt und übersichtlich.Wenn jemand bestimmte Funktionen in Form einer DLL ins Programm integrieren will (quasi als eigenständiges, getrenntes Projekt) dann habe ich für meinen Teil nichts dagegen (ähnlich läuft es ja bei unseren Katalogen auch jetzt schon).

Zu CdC: Was mir an den Programm gut gefallen hat das waren die Sternbilder in Klarnamen (großer Wagen u.s.w). Die Sache mit den Exoplaneten finde ich übrigens auch eine nette Idee.Bei CdC habe ich auf der Katalog Downloadseite übrigens auch noch einen Nebelkatalog entdeckt, habe mir aber noch nicht genauer angesehen was die damit machen.

Anstehende Entscheidungen:
Unter welcher Lizenz lassen wir das jetzt laufen? Ich denke das ist sehr wichtig.Ich wäre für die BSD Lizenz (auch andere große Projekte wie der PostgreSQL SQL-Server oder Microsoft haben darunter lizensiert) da sie liberal und nicht mit irgendwelchen Pferdefüßen versehen ist (so wie die GPL von GdC).

BSD Lizenz, Namen geändert (das ist die Lizenz die wir schon momentan im Installer verwenden)
DIESE SOFTWARE WIRD VON DEN BEITRAGSLEISTENDEN OHNE JEGLICHE SPEZIELLE ODER IMPLIZIERTE GARANTIEN ZUR VERFÜGUNG GESTELLT, DIE UNTER ANDEREM EINSCHLIESSEN: DIE IMPLIZIERTE GARANTIE DER VERWENDBARKEIT DER SOFTWARE FÜR EINEN BESTIMMTEN ZWECK. AUF KEINEN FALL SIND DIE BEITRAGSLEISTENDEN FÜR IRGENDWELCHE DIREKTEN, INDIREKTEN, ZUFÄLLIGEN, SPEZIELLEN, BEISPIELHAFTEN ODER FOLGESCHÄDEN (UNTER ANDEREM VERSCHAFFEN VON ERSATZGÜTERN ODER -DIENSTLEISTUNGEN; EINSCHRÄNKUNG DER NUTZUNGSFÄHIGKEIT; VERLUST VON NUTZUNGSFÄHIGKEIT; DATEN; PROFIT ODER GESCHÄFTSUNTERBRECHUNG), WIE AUCH IMMER VERURSACHT UND UNTER WELCHER VERPFLICHTUNG AUCH IMMER, OB IN VERTRAG, STRIKTER VERPFLICHTUNG ODER UNERLAUBTER HANDLUNG (INKLUSIVE FAHRLÄSSIGKEIT) VERANTWORTLICH, AUF WELCHEM WEG SIE AUCH IMMER DURCH DIE BENUTZUNG DIESER SOFTWARE ENTSTANDEN SIND, SOGAR, WENN SIE AUF DIE MÖGLICHKEIT EINES SOLCHEN SCHADENS HINGEWIESEN WORDEN SIND.

MIT Lizenz:
Copyright (c) <Jahr> <Copyrightinhaber>
Hiermit wird unentgeltlich, jeder Person, die eine Kopie der Software und der zugehörigen Dokumentationen (die "Software") erhält, die Erlaubnis erteilt, uneingeschränkt zu benutzen, inklusive und ohne Ausnahme, dem Recht, sie zu verwenden, kopieren, ändern, fusionieren, verlegen, verbreiten, unterlizenzieren und/oder zu verkaufen, und Personen, die diese Software erhalten, diese Rechte zu geben, unter den folgenden Bedingungen:
Der obige Urheberrechtsvermerk und dieser Erlaubnisvermerk sind in allen Kopien oder Teilkopien der Software beizulegen.
DIE SOFTWARE WIRD OHNE JEDE AUSDRÜCKLICHE ODER IMPLIZIERTE GARANTIE BEREITGESTELLT, EINSCHLIESSLICH DER GARANTIE ZUR BENUTZUNG FÜR DEN VORGESEHENEN ODER EINEM BESTIMMTEN ZWECK SOWIE JEGLICHER RECHTSVERLETZUNG, JEDOCH NICHT DARAUF BESCHRÄNKT. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER FÜR JEGLICHEN SCHADEN ODER SONSTIGE ANSPRÜCHE HAFTBAR ZU MACHEN, OB INFOLGE DER ERFÜLLUNG EINES VERTRAGES, EINES DELIKTES ODER ANDERS IM ZUSAMMENHANG MIT DER SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE ENTSTANDEN.

Ich kann mich mit beiden Lizenzen gut arrangieren, da sie dem Benutzer umfangreiche Rechte und für uns die Haftungsangelegenheiten klären,
nur entscheiden müssen wir uns.

Gruß, Peter
 

pmvstrm

Registriertes Mitglied
Hallo Bernhard,
Ok, dann ist das auch vom Tisch und beschlossene Sache. Ich muss dann bloß noch mal bei Gelegenheit das Windows Installerscript so umbauen, das wir eine Deutsche und eine Englische Lokalisierung haben (momentan kann unser Windows Installer nur Deutsch).Aber das passt mir trotzdem ganz gut, dann kann ich das Mac und das Linux Setup auch gleich anpassen.Ich könnte mich auch mal schlau machen, ob wir unser Programm nicht auf den Linux Distributions Servern untergebracht kriegen (hat CdC ja auch so gemacht), ggf. wäre auch der Mac sowie der Windows Appstore nicht schlecht um unser Programm zu verteilen.
(natürlich nur, wenn das kostenlos machbar ist).

Gruß, Peter
 

pmvstrm

Registriertes Mitglied
So, nun sind wir auch bei Twitter vertreten:)

my3dscoriginal.png


https://twitter.com/#!/My3DStarChart

Gruß, Peter
 

pmvstrm

Registriertes Mitglied
Hallo Bernhard,
Ich habe eben noch einen Splashscreen eingebaut. Ein Minifenster wird jetzt beim starten angezeigt, wenn das Programm gerade große Katalogdaten
am laden ist. Wenn nur wenige Daten da sind, nimmt man es gar nicht war, aber wenn doch weiß der User dass das Programm was macht und nicht
abgestürtzt ist.

Gruß, Peter
 

Bernhard

Registriertes Mitglied
@All:
Da das Thema sich hier mittlerweile doch etwas in die Länge zieht und dadurch für Unbeteiligte schnell unübersichtlich wird, habe ich Peter per PN vorgeschlagen einen Teil der Diskussion in ein deutschsprachiges Qt-Forum zu verlagern. Das Forum hier wird damit dann hoffentlich vor Qt-spezifischen und eher technischen Details verschont.

Wer diese Aspekte dennoch mitverfolgen will, kann das aber auch gerne hier machen.
Viele Grüße
 
Oben