Maturarbeit III
So lange ist es her seit dem letzten Eintrag! 🙂
Meine Maturarbeit hat auch sehr an Umfang zu genommen, zumindest was den Code betrifft!
Da ich nicht immer Lust auf C++ hatte, hab ich zwischendurch auch einmal eine kleine Webpräsenz gebastelt. Es ist nicht wirklich etwas grosses und sehenswertes, aber es hat mir einfach Spass gemacht! Der Name SimX war der erste der mir durch den Kopf ging, nicht wirklich originell, aber Namensgebungen sind sowieso nie so mein Ding… 🙂
Nun ein bisschen Geschwafel über den Aufbau:
Das Prinzip der Simulation ist eigentlich immer noch gleich geblieben, auch der DirectX-Aufbau hat sich nicht gross geändert. Jedoch wurde die ganze Simulation etwas mehr Klassen-Orientiert. Es gibt nun eine DirectX-, eine World- und eine Object-Klasse. Die Idee dahinter ist nun, dass nur die physikalische und die grafische “Welt” auseinander gehalten wird. Obwohl die Idee auf Papier schön und einfach ausgesehen hat gab sie mir doch ziemlich viel zu tun. Schlussendlich bin ich nun auf eine halb befriedigende Lösung gestossen.
Die World-Klasse besitzt ein Vector mit allen physikalischen Objekten, welche über die World-Klasse “erschaffen” werden. Beim ersten Durchlauf zur Simulation werden nun anhand der physikalischen Objekte über die DirectX-Klasse “grafische” Objekte erstellt, genau gesehen sind es Sprites.
Während der Simulation wird die neue Position der Objekte berechnet und dann auf die Sprites übertragen und dargestellt. Dazwischen kommt dann natürlich noch die Konvertierung, da die physikalischen Objekte ein Koordinatennetz mit dem Ursprungspunkt linksunten haben und die “grafischen” Objekte linksoben.
Wie gesagt halb befriedigend.Was nun natürlich ganz neu ist, dass ich von der Idee der DirectX basierenden Grafischen Oberfläche weg gekommen bin (zu kompliziert) und mit QT eine gute Alternative gefunden habe. Das Ganze läuft nun wie folgt ab: Zuerst erstellt man mit dem SimX-Creator, welcher die QT-GUI hat, eine Simulation, sprich man stellt alle Variablen so ein, wie man möchte. Der SimX-Creator erstellt dann eine Datei “xy.sim” und die dazugehörigen Objekt Dateien “xy.tmp”. Der SimX-Simulator öffnet nun diese Dateien und liest die benötigten Einstellungen heraus und fügt automatisch anhand der Objekt-Dateien die gewollten Objekte zum Vector in der World-Klasse. Danach startet die Simulation und der Benutzer kann das Ergebnis betrachten.
Die Umsetzung ist nun eigentlich schon gemacht, nur gibt es irgendwo noch Probleme mit der Darstellung, bzw. der Umwandlung der richtigen Einheiten, darum kann ich hier auch kein Video posten.
Durch das hinzuziehen von QT hab ich mein bislang beschränktes Wissen wieder etwas aufgefrischt und ergänzt und muss wieder einmal feststellen, wie genial und einfach QT doch ist!
Obwohl die Simulation nun schon einen grossen Schritt näher zum Ende geschritten ist, gibt es noch viel zu tun, vor allem fehlt noch sehr viel des schriftlichen Teils!
Geschrieben am 20.02.2010 von admin in Computer, Reallife, School, Windows
Tags: Aufbau, C++, DirectX, Klassen, Matur, Maturarbeit, QT, SimX
[…] mal etwas näher angeschaut. Eine gewisse Ahnung hatte ich ja schon durch meine Maturarbeit (1, 2, 3), jedoch eher in 2D und eigentlich nur mit Sprites. Nach dem ich nun mehr oder weniger per Zufall […]