{"id":208,"date":"2010-02-20T23:32:50","date_gmt":"2010-02-20T22:32:50","guid":{"rendered":"http:\/\/blog.my-gate.net\/2010\/02\/maturarbeit-iii\/"},"modified":"2010-02-20T23:32:50","modified_gmt":"2010-02-20T22:32:50","slug":"maturarbeit-iii","status":"publish","type":"post","link":"https:\/\/duerrenberger.dev\/journal\/2010\/02\/20\/maturarbeit-iii\/","title":{"rendered":"Maturarbeit III"},"content":{"rendered":"<p>So lange ist es her seit dem letzten Eintrag! \ud83d\ude42   <br \/><a href=\"\/wp-content\/uploads\/2010\/02\/simx1.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" style=\"border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px\" title=\"simx\" border=\"0\" alt=\"simx\" src=\"\/wp-content\/uploads\/2010\/02\/simx2.png\" width=\"550\" height=\"275\" \/><\/a>Meine Maturarbeit hat auch sehr an Umfang zu genommen, zumindest was den Code betrifft!<\/p>\n<p> <!--more-->  <\/p>\n<p>Da ich nicht immer Lust auf C++ hatte, hab ich zwischendurch auch einmal eine kleine Webpr\u00e4senz 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\u2026 \ud83d\ude42<\/p>\n<blockquote>\n<p><a href=\"http:\/\/matura.my-gate.net\/\" target=\"_blank\">Matura &#8211; SimX<\/a><\/p>\n<\/blockquote>\n<p>Nun ein bisschen Geschwafel \u00fcber den Aufbau:   <br \/>Das Prinzip der Simulation ist eigentlich immer noch gleich geblieben, auch der DirectX-Aufbau hat sich nicht gross ge\u00e4ndert. 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 \u201cWelt\u201d auseinander gehalten wird. Obwohl die Idee auf Papier sch\u00f6n und einfach ausgesehen hat gab sie mir doch ziemlich viel zu tun. Schlussendlich bin ich nun auf eine halb befriedigende L\u00f6sung gestossen.<\/p>\n<p>Die World-Klasse besitzt ein Vector mit allen physikalischen Objekten, welche \u00fcber die World-Klasse \u201cerschaffen\u201d werden. Beim ersten Durchlauf zur Simulation werden nun anhand der physikalischen Objekte \u00fcber die DirectX-Klasse \u201cgrafische\u201d Objekte erstellt, genau gesehen sind es <a href=\"http:\/\/de.wikipedia.org\/wiki\/Sprite_%28Computergrafik%29\" target=\"_blank\">Sprites<\/a>.    <br \/>W\u00e4hrend der Simulation wird die neue Position der Objekte berechnet und dann auf die Sprites \u00fcbertragen und dargestellt. Dazwischen kommt dann nat\u00fcrlich noch die Konvertierung, da die physikalischen Objekte ein Koordinatennetz mit dem Ursprungspunkt linksunten haben und die \u201cgrafischen\u201d Objekte linksoben.    <br \/>Wie gesagt halb befriedigend.<a href=\"\/wp-content\/uploads\/2010\/02\/CBQTD1.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" style=\"border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px\" title=\"CBQTD\" border=\"0\" alt=\"CBQTD\" src=\"\/wp-content\/uploads\/2010\/02\/CBQTD2.png\" width=\"550\" height=\"306\" \/><\/a>Was nun nat\u00fcrlich ganz neu ist, dass ich von der Idee der DirectX basierenden Grafischen Oberfl\u00e4che weg gekommen bin (zu kompliziert) und mit <a href=\"http:\/\/qt.nokia.com\/\" target=\"_blank\">QT<\/a> eine gute Alternative gefunden habe. Das Ganze l\u00e4uft nun wie folgt ab: Zuerst erstellt man mit dem SimX-Creator, welcher die <a href=\"http:\/\/qt.nokia.com\/\" target=\"_blank\">QT<\/a>-GUI hat, eine Simulation, sprich man stellt alle Variablen so ein, wie man m\u00f6chte. Der SimX-Creator erstellt dann eine Datei \u201cxy.sim\u201d und die dazugeh\u00f6rigen Objekt Dateien \u201cxy.tmp\u201d. Der <a href=\"http:\/\/matura.my-gate.net\/\" target=\"_blank\">SimX<\/a>-Simulator \u00f6ffnet nun diese Dateien und liest die ben\u00f6tigten Einstellungen heraus und f\u00fcgt 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.<\/p>\n<p>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.<\/p>\n<p>Durch das hinzuziehen von <a href=\"http:\/\/qt.nokia.com\/downloads\" target=\"_blank\">QT<\/a> hab ich mein bislang beschr\u00e4nktes Wissen wieder etwas aufgefrischt und erg\u00e4nzt und muss wieder einmal feststellen, wie genial und einfach <a href=\"http:\/\/qt.nokia.com\/downloads\" target=\"_blank\">QT<\/a> doch ist!<\/p>\n<p>Obwohl die Simulation nun schon einen grossen Schritt n\u00e4her zum Ende geschritten ist, gibt es noch viel zu tun, vor allem fehlt noch sehr viel des schriftlichen Teils!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So lange ist es her seit dem letzten Eintrag! \ud83d\ude42 Meine Maturarbeit hat auch sehr an Umfang zu genommen, zumindest was den Code betrifft!<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,10,11,14],"tags":[47,68,99,208,241,242,294,329],"class_list":["post-208","post","type-post","status-publish","format-standard","hentry","category-pc","category-rl","category-school","category-windows","tag-aufbau","tag-c","tag-directx","tag-klassen","tag-matur","tag-maturarbeit","tag-qt","tag-simx"],"_links":{"self":[{"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/posts\/208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/comments?post=208"}],"version-history":[{"count":0,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/posts\/208\/revisions"}],"wp:attachment":[{"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/media?parent=208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/categories?post=208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/duerrenberger.dev\/journal\/wp-json\/wp\/v2\/tags?post=208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}