Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 21 bis 40 von 45

Thema: Progforum Contest 2013 - Teenage Mutant Ninja (?) Turtles

  1. #21
    Gedacht war, dass eure Programme die oben genannte Syntax verstehen sollten. Ihr dürft sie natürlich um zusätzliche Befehle erweitern oder wegen mir auch zusätzlich eine zweite davon unabhängige Syntax unterstützen. Da sollen eurer Fantasie erstmal keine Grenzen gesetzt werden.

  2. #22
    Hier ist ein weiterer Screenshot, zusammen mit dem Code dazu, von dem Programm in Aktion:

    Und hier ein weiteres:

    Geändert von Cornix (18.03.2013 um 18:44 Uhr)

  3. #23
    Zitat Zitat von DFYX Beitrag anzeigen
    Weird. Ich denke allerdings nicht, dass das ein generelles Problem von LWJGL ist. Schließlich laufen genug andere Programme, die auf die Bibliothek setzen, einwandfrei unter OS X (allen voran Minecraft)
    Minecraft nutzt eine recht alte Version von lwjgl.

    Das Problem mit dem JAWT Interface habe ich unter Linux auch (nutze Oracles JDK 1.7.0_17), allerdings nutze einen kleinen Trick, damit es trotzdem läuft - bevor ein Display über lwjgl geöffnet wird:
    Code:
    if(System.getProperty("java.version").contains("1.7") && System.getProperty("os.name").toLowerCase().contains("linux"))
    {
    	String osArch = System.getProperty("os.arch");
    	boolean is64bit = "amd64".equals(osArch) || "x86_64".equals(osArch);
    
    	java.awt.Toolkit.getDefaultToolkit(); // loads libmawt.so (needed by jawt)
    			
    	if (is64bit) 
    		System.load(System.getProperty("java.home") + "/lib/amd64/libjawt.so");
    	else 
    		System.load(System.getProperty("java.home") + "/lib/i386/libjawt.so");
    }
    Vielleicht kann dieser Trick auch auf OSX "verallgemeinert" werden. Ich kenne bloß den Pfad ab System.getProperty("java.home") zu der lib bei OSX nicht (hoffe, dass es die libjawt* überhaupt gibt).
    Ich habe selber keine Mac, wo ich das ausprobieren könnte.

  4. #24
    Bei mir unter Windows 7 (64 bit) läuft was, aber ich weiß nicht, ob das so richtig ist. Der Output sieht recht schräg aus.
    Klicke auf die Grafik für eine größere Ansicht 

Name:	screenshot.png 
Hits:	41 
Größe:	26,3 KB 
ID:	17184

  5. #25
    Das ist einer der zufällig generierten Codes.

  6. #26
    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:
    Klicke auf die Grafik für eine größere Ansicht 

Name:	screenshot.png 
Hits:	42 
Größe:	40,6 KB 
ID:	17186

  7. #27
    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 (19.03.2013 um 00:33 Uhr)

  8. #28
    Läuft bei mir. Zumindest scheint es so.

  9. #29
    Läuft (Chrome/Mac OS X). Manchmal bleibt der Canvas weiß, das lässt sich aber leicht lösen, indem man die Seite neu lädt.

  10. #30
    Interessant, dann werd ich mir wohl chrome auf mac und opera auf android genauer ansehen muessen.

  11. #31
    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.

  12. #32
    So, dann präsentiere ich mein Programm:

    Klicke auf die Grafik für eine größere Ansicht 

Name:	Screenshot.png 
Hits:	81 
Größe:	108,0 KB 
ID:	17245



    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 11:36 Uhr)

  13. #33
    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    Wäre schön, wenn noch jemand bescheid sagen könnte, ob es läuft, oder nicht.
    Die Linuxversion läuft bei mir unter Archlinux 64bit einwandfrei.

    Sehr interessanter Wettbewerb... Ich hatte mit Fraktalen bis dato noch nichts zu tun, aber nach ein wenig Einlesen interessiert mich das Thema schon etwas...

  14. #34
    Dann mach mit, du hast noch fast eine ganze Woche Zeit.

  15. #35
    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.


    Zitat Zitat von Whiz-zarD
    Wäre schön, wenn noch jemand bescheid sagen könnte, ob es läuft, oder nicht.
    Bei mir unter Windows7 läufts!

    Geändert von nudelsalat (03.04.2013 um 10:20 Uhr)

  16. #36
    Zitat Zitat von Manuel Beitrag anzeigen
    Die Linuxversion läuft bei mir unter Archlinux 64bit einwandfrei.
    Zitat Zitat von nudelsalat Beitrag anzeigen
    Bei mir unter Windows7 läufts!
    Sehr schön. Danke

  17. #37
    Wie uns gerade zugetragen wurde, haben einige von euch vergessen, ihren Sourcecode mit in den Osterurlaub zu nehmen, damit sie ihn rechtzeitig bis Sonntag abgeben koennen.
    Aus diesem Grunde haben Jeez, DFYX und ich uns beratschlagt, und entschieden, den Contest um eine Woche bis Sonntag, den 7. April zu verlaengern.

    Ihr habt also noch eine kleine Galgenfrist, eueren Code etwas aufzuhybschen oder noch ein paar tolle Bilderchen zu generieren.

    Viel Spass dabei und Frohe Ostern.

  18. #38
    So, hier kommt mein Beitrag. Ich habe nichts Aufregendes – nur eine kleine Webapp, die SVGs zeichnen kann. Ist nicht mal besonders hübsch geworden.

    Ich habe ein paar Syntaxerweiterungen drin (siehe README) und kann gefüllte Flächen sowie Bézierkurven zeichnen. Im Wesentlichen benutzt meine App eine Billigversion von SVG als interne Repräsentation der Zeichnung, von daher sind die Features relativ dicht daran gehalten, was einfaches SVG so kann.

    Oh, und ich bin mit Lukis Syntax mehr oder weniger kompatibel. Offenbar sind unsere Koordinatensysteme gegeneinander gespiegelt und gedreht, aber ansonsten sind alle Luki-Skripte bei mir lauffähig (aber nicht umgekehrt).

    Als Bild habe ich einfach mal das Logo vom klassischen Mac OS nachgezeichnet, weil mir nichts besseres eingefallen ist.

    Getestet in Firefox 19 und Chromium 25. Sollte prinzipiell in jedem ES5-fähigen Browser laufen, wenn ich nicht irgendwo noch einen Bug reingehauen habe, der nur zufällig in Gecko und V8 funtkioniert.

    Die Webapp
    Der Code (7-zip; 8,8 KiB)
    Der Code (tar/bzip2; 9,5 KiB)
    Das Beispielbild (SVG; 1,3 KiB)

  19. #39
    So ... wir wurden gerade nochmal gefragt, ob man den Contest eventuell bis zum 14.04. laufen lassen koenne, da jemandem, der teilnehmen wollte, eine Deadline dazwischen gekommen ist.
    Da massive Contestverlaengerungen bei uns im Progforum ja Tradition haben, und es fuer niemanden einen Nachteil darstellt, etwas mehr Zeit zu haben, um seinen Code oder seine Praesentation zu verschoenern, haben wir uns dafuer entschieden, diesem Wunsch nachzukommen.

    Neuer Stichtag ist jetzt Sonntag, der 14. April 2013. Und das ist jetzt auch wirklich die letzte Deadline, sofern wir es uns nicht wieder anders ueberlegen.

  20. #40
    So ... nun ist es wohl an mir, meinen Beitrag abzugeben ...
    Ich koennte nun hier einen riesigen Post verfassen, aber stattdessen habe ich den ganzen Kram uebersichtlich und strukturiert auf einer Webseite praesentiert.
    http://ineluki.rpg-atelier.net/Prog/...ki/Readme.html

    Dort findet ihr sowohl eine Beschreibung, was ich gemacht habe, als auch die Quelltexte, den Turtle-Code, und die fertigen Graphiken. Das Lesen der Readme ist dringend empfolen !

    Das gesamte Projekt kann in Einzeldateien oder als tar.bz2 heruntergeladen werden.
    Da die so erstellten Graphiken recht gross sind (ca. 4 MB unkomprimiert, ca. 450 KB gzip komprimiert) verlinke ich sie hier nur.

    Der von mir generierte Turtle-Code <- $ setzt factor auf 2, #RRGGBB setzt die Farbe auf RRGGBB
    SVGZ mit Painting-Renderer und Option Speedup=10 <- Sorry, keine Internet Explorer Unterstuetzung
    SVGZ mit Blending-Renderer <- Sorry, ich kann nix dafuer, dass der Internet Explorer Scheisse ist
    SVGZ ohne Schnickschnack im Internet Explorer Kompatibilitätsmodus

    Alle Codes sind unter Firefox und Chrome getestet. Internet Explorer 9 funktioniert nur mit dem IE-Renderer. Opera ist ungetestet, waere also schoen, wenn mir jemand bescheid geben koennte, ob dort alles funktioniert.

    Als Programmiersprache habe ich GNU Awk verwendet. Warum ? Weil ich kann und sie dafuer eigentlich gar nicht gedacht ist.
    OK, in Wahrheit mag ich diese tolle Scriptsprache und wollte mit meiner Einsendung demonstrieren, dass man durchaus anspruchsvolle Dinge mit Awk anstellen und auch große Datenmengen schnell verarbeiten kann. Zwar liegt der Schwerpunkt von Awk auf Regulaeren Ausdruecken und Textverarbeitung, aber mit ein paar kleinen Tricks kann man, wie hier gezeigt, durchaus auch byteweise arbeiten. Diejenigen von euch, die die BSD-Variante von awk benutzen, haben allerdings Pech gehabt, denn selbige unterstuetzt (noch) nicht die fuer meine Farbreduktion notwendigen binaeren Operatoren AND, RSHIFT und LSHIFT. Schade.

    Was mich an Awk allerdings besonders stoehrt, ist, dass in der Sprache keine lokalen Variablen vorgesehen sind. ALLE Variablen sind global. Das fuehrt natuerlich unweigerlich zu Namenskollisionen. Der einzige Trick, mit dem man dies umgehen kann, ist, lokale Variablen mit uninitialisierten und unbenutzten optionalen Funktionsparametern zu emulieren, was ich an einigen Stellen auch getan und im Quelltext kommentiert habe. Die Syntax ist ziehmlich gewoehnungsbeduerftig, aber besser als gar nichts lokales. Leider ist Awk auch nicht objektorientiert, doch fuer so ein kleines Projekt, wie dieses hier, kann man ja mal darueber hinweg sehen. Wenigstens gibt es Funktionen, von denen ich auch regen Gebrauch mache.

    So, jetzt ist aber genug geschwafelt. Viel Spass beim Begutachten meiner Einsendung. Ueber kosntuktives Feedback freue ich mich natuerlich besonders.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •