Ah, ok.
Ich hab mir auch mal dein Sourcecode angeschaut. Da existieren schon ein paar Parallelen. ^^
In den nächsten Tagen werde ich mal meinen Code hochladen. Ein paar Punkte gefallen mir da noch nicht so recht.
Aus irgendeinem Grund spielen die Farben auch nicht mehr so richtig mit. Ich muss hier auch grad so ein wenig auf Quellcodeverwaltung verzichten. Nun ich grad nicht mehr nachvollziehen, was welche Änderungen dies verursacht haben. :/
So sieht mein derzeitiger Stand aus:
![]()
Ich poste mal eine WIP Version. Mich würde sehr interessieren, ob die bei jedem läuft. (Verwendet WebGL / Three.js)
http://gebackene-ente.at/turtle/index.html
* Farben werden noch nicht unterstützt.
* Zusätzlich zu F kann auch mit G gezeichnet werden.
* neben + und - gibt es auch y,p,r und Y,P,R. (yaw, pitch und roll gegen den Uhrzeigersinn und im Uhrzeigersinn. r und R entsprechen + und -)
* Ich hab das Eingabefeld auf L-Systeme ausgerichtet. Wenn man nur eine bestimmte Zeichenkette zeichnen will, dann muss die einfach nur in das Feld "axiom" eingefügt und die iterationen auf 0 gesetzt werden.
2 Beispiele:
* Baum
* Pflanze mit zusätzlicher pitch-rotation. d.h. sie ist ansich 3D, man siehts nur noch nicht gscheit, solang die Kamera nicht beweglich ist.
Coole Preise und Thema. :3
Geändert von nudelsalat (18.03.2013 um 22:33 Uhr)
Interessant, dann werd ich mir wohl chrome auf mac und opera auf android genauer ansehen muessen.
Unter Opera ist WebGL noch sehr buggy und per Standard deaktiviert.
Man kann es unter Opera:config -> User Prefs -> Enable WebGL aktivieren, wenn man den Wert auf 1 setzt.
Allerdings bleibt selbst dann der WebGL-Bereich leer.
So, dann präsentiere ich mein Programm:
Es ist ein Editor, mit einer Demo-Funktion und SVG-Export geworden. Geschrieben mit Java 7.
Die Grafik auf der Oberfläche wird mittels JOGL erzeugt. Die JOGL-Binaries sind sehr groß, deswegen sind die jar-Dateien und recht groß.
Ich habe hierbei auf die Erweiterbarkeit und auf die Trennung von Model-View-Controller geachtet, was aber wohl an einigen Stellen mehr oder weniger gelungen ist.
Es ist also möglich, weitere Operationen hinzuzufügen. Jede Operation wurde in seiner eigenen Klasse implementiert. Es sind aber bis jetzt nur die Implementiert, die auch für den Contest vorgegeben sind.
Des weiteren gibt es eine zentrale Klasse, die alle relevanten Informationen besitzt und verwaltet.
Diese zentrale Klasse gibt den Renderern die benötigten Informationen und gibt denen bescheid, wann sie Rendern sollen.
Es ist also möglich unterschiedlichste Renderer zu implementieren. In meinem Programm habe ich zwei Entwickelt: Ein OpenGL-Renderer (GUI) und einen SVG-Renderer (SVG Export).
Außerdem können zusätzlich Listener registriert werden, die auf die Änderungen der Status-Werte reagieren. In meinem Fall sind es z.B. die Text-Ausgaben der Werte auf der GUI.
Statusänderungen, die zu einen Fehler führen, wie z.B. das Setzen eines Wertes auf 0, führen zu einer entsprechenden Exception, sodass der Entwickler jeweils auf die unterschiedlichen Exceptions reagieren kann.
Ebenfalls führt das poppen (yeah!) zu einer Exception, wenn der Stack leer ist.
Es gibt eine Demo-Klasse, die ein Fraktal erstellt. Das Fraktal wird über den Button "Demo ausführen" generiert.
Über die SVG-Export-Funktion wird das gezeichnete Bild in ein SVG-Bild gespeichert.
Das Fenster ist auf 800x600 eingestellt, aber es lässt sich beliebig skalieren.
So, viel spaß mit dem Editor.
Ich hoffe es läuft alles so weit. Mac OS X kann ich leider nicht testen, da ich kein OS X zur Hand habe.
Wäre schön, wenn noch jemand bescheid sagen könnte, ob es läuft, oder nicht.
Geändert von Whiz-zarD (24.03.2013 um 09:36 Uhr)
Na dann, hier meine Endabgabe:
Zur online Version:
Pflanze
Koch Island
Dragon Curve
Kreis
Windung
Sourcecode
Screenshot:
Mittels mousedrag kann das L-System jetzt auch gedreht werden.
Alle generierten L-Systeme werden auf dieselbe größe skaliert.
Umgesetzt mit Javascript / Three.js / WebGL
Der hauptsächlich relevante Code befindet sich in page.js und in src/turtle.js.
Bei mir unter Windows7 läufts!Zitat von Whiz-zarD
Geändert von nudelsalat (03.04.2013 um 08:20 Uhr)