Personenseite von Maximilian

Swing By Projekt

Die Hochschule Zittau Görlitz startete einen Wettbewerb Computeranimation mit POVRay. 2009 hat mich mein Lehrer darauf hingewiesen und da ich so wie so schon mal was von POVRay gehört, habe ich mich dabei angemeldet. Ziel war es mit POVRay etwas Mathematisches, Technisches, Physikalisches usw. zu simulieren. Hauptsache es bewegt sich. POVRay ist eine Software mit der man 3D Bilder und/oder Animationen erzeugen kann. Man gibt den Szenenaufbau in Textform ein. Also z.B. sagt man POVRay man möchte an den Koordinaten x,y,z einen Quader erzeugen mit den Maßen Breite, Höhe, Länge (Eigentlich sind es zwei Eckpunkte aber das Prinzip ist gleich). Nach langen überlegen habe ich mich dann entschieden ein Swing By Manöver zu simulieren. Ein Swing By wird dazu genutzt einem Satelliten zu beschleunigen oder abzubremsen und seine Richtung zu ändern. Für dieses Manöver muss der künstliche Satellit nahe an einem Planeten oder Mond vorbeifliegen. Mittels Gravitation wird der Satellit angezogen und beschleunigt. Je nach Eintrittswinkel in die Einflusssphäre des Planeten wird er beschleunigt oder abgebremst. Meine Simulation zeigt eine Beschleunigung. Mit POVRay ist es ziemlich schwer schnell Werte zu berechnen, daher habe ich ein C++-Programm geschreiben um Parameter auszuprobieren und zu guter letzt die Daten zu generieren. Diese wurden von POVRay eingelesen und es hat die Einzelbilder erzeugt. Hier die fertige Simulation: http://www.youtube.com/watch?v=I3F88w3LkiI Glücklicherweise habe ich mit dieser Simulation sogar den Wettbewerb gewonnen und bin jetzt stolzer Besitzer eines Notebooks, auf den ich so gleich Ubuntu installiert habe ;-)

Meine Geschichte zur Informatik

Ich gehe schon seit einigen Jahren in die Station. Hier hat auch meine Sucht nach Informatik angefangen. In den Sommerferien wurde ein PC Schnupperkurs von der Station angeboten, wo ich mit meiner Schwester Victoria hingegangen bin. Ich war damals etwa 11 Jahre und hab dort angefangen erste Internetseiten mit HTML zu erstellen. Dass das alles so einfach und logisch war, hat mich einfach fasziniert und zum weiterforschen animiert. Diese primitiven 0815 Internetseiten waren mir viel zu statisch und zu langweilig, daher habe ich angefangen die Seiten mit CSS aufzurüsten. Ich besuchte seit dem Schnupperkurs die Arbeitsgemeinschaft Computertechnik. Dazu kam dann noch, dass meine Schwester Informatik studiert hat. Also hab ich mir von ihr ein Buch über C-Programmierung von ihr geliehen. Ich habs komplett durchgelesen und praktisch nichts verstanden. Also musste ich probieren und bin immer wieder zu neuen Erkenntnissen gekommen. Dabei habe ich dann langsam immer mehr verstanden. Da ich aber nur öde Konsolenprogramme anfertigen konnte dachte ich mir C++ kann ich schon grafisch werden, da ja da zwei Pluszeichen sind, die auf eine Erweiterung deuten. Leider Fehlanzeige. Aber dafür konnte ich dann schon C++, was sich (meiner Meinung nach) wesentlich besser programmieren lässt. Außerdem habe ich mir ein Buch gekauft mit dem Titel „3D Spieleprogrammierung“, was ein gewaltiger Fehler war, denn das Buch erforderte Kenntnisse in C++ Programmierung, die ich eigentlich zu diesem Zeitpunkt noch nicht hatte, und in der WinAPI. Ich hatte keinen Schimmer, was die WinAPI ist, also hab ich mir später darüber ein Buch gekauft. Aber noch davor habe ich versucht das Buch zu lesen, aber ich habe noch weniger verstanden als im C-Buch. Es begann erst mal mit 3D Mathematik, was eigentlich 12. Klasse Stoff ist!!! Das Buch habe ich noch nicht mal zum Viertel durch gelesen. Denn was Vektoren sind habe ich mir mittlerweile schon selbst beigebracht. Aber bei Begriffen wie Matrizen und Quarternionen muss ich heute immer noch passen. Durch Randolf habe ich permanent neue Informationen bekommen, die aber teilweiseauch schwer verständlich waren. In einem Projekt der Station hab ich jemanden kennen gelernt, der mir ein Buch gab mit dem man 2D Spiele programmieren lernt mittels Allegro. Damit habe ich dann auch schon wirklich geschafft grafische Sachen hinzubekommen und hab sogar ein ganz primitives Pong programmiert, was aber ehrlich gesagt nicht so der Renner war, weil es von der Spielphysik nicht korrekt lief. Ich hatte ja keine Ahnung wie man so was berecht. Ich habe immer wieder bemerkt wie wichtig Mathematik in der Programmierung ist und hab mich im Matheunterricht dementsprechend angestrengt. Zwischenzeitlich habe ich öfters in mein 3D Buch geguckt aber immer noch nichts verstanden und hab irgendwann bemerkt, dass da beim Titel noch steht „von 3D Engines..“. Deshalb war das auch so kompliziert, weil es nicht die Erstellung von 3D-Grafiken zeigt, sondern wie man eine 3D-Engine programmiert. Mein Zeil war es aber unbedingt mal etwas in 3D zu programmieren, also bin ich auf Blitz3D gestoßen und hab mir das zum Geburstag gewünscht. Da ich schon mittlerweile viele Programmiersprachen kannte, habe ich diese Sprache grob innerhalb einer Woche drauf gehabt (oder sogar noch schneller). Man konnte sehr einfach 3D Zeug programmieren. Es gibt diverse Beispiele und und und. Ich habe sehr lange dran rumprobiert und bin zu der Erkenntnis gekommen, dass ich mit 2D-Grafik anfangen muss, weil das wesentlich einfacher ist. Gesagt getan. Ich habe ein Snake in Blitz3D programmiert und einige andere Sachen. Etwas zu dieser Zeit bin ich auf Linux gestoßen, vor allem durch Randolf. Seit dem mache ich sehr viel mit Linux, da es einfach schneller läuft als ein mit Viren verseuchtes Windows und das beste: Man kann viel, viel einfacher Programmieren. Praktisch ist Linux hervorragend fürs Programmieren geeignet. Leider konnte ich mit Blitz3D nicht unter Linux programmieren und ich habe bald die Grenzen von Blitz3D erkannt, so dass ich wieder auf C++ umgesteigen bin. Ich programmierte bis vor kurzen sehr viel mit SDL, was eine Empfehlung von Randolf war. Ich habe es aber bis heute nicht geschafft etwas sehr großes zu Programmieren, da mir einfach die mathematischen und informatischen Kenntnisse fehlen. Inzwischen habe ich die Grafikfunktion der besten Bibliothek SDL durch Cairo ersetzt, da man dadurch Vektorgrafiken programmieren kann. Ich konnte so wie so nie ein Spiel programmieren, da ein Spiel normalerweise grafik hat und ich kein Grafiker bin.Also wollte ich Physiksimulationen schreiben. Diese erwiesen sich aber als sehr kompliziert. Mittlerweise habe ich einen Ansatz und mache die Physiksimulation zu meiner Projektarbeit in der 11. Klasse. Ich muss jetzt noch überlegen wie ich die grafische Oberfläche hinbiege. Da ich unter Linux bequemer arbeiten kann werde ich mich zwischen GTK+ und Qt entscheiden müssen. Aber da soll nicht das Problem liegen. Während des ganzen Spieleprogrammierens habe ich mir noch andere Programmiersprachen beigebracht (wenn man eine kann gehen die anderen ganz schnell). Unter anderen PHP mit der man prima dynamische Internetseiten programmieren kann. Ich habe mich jetzt bereiterklärt die Schulhomepage vorzunehmen, wobei ich dort die technischen Sachen übernehme.