Ergebnis 1 bis 20 von 45

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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...

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

  3. #3
    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 08:20 Uhr)

  4. #4
    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

  5. #5
    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.

  6. #6
    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)

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

  8. #8
    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.

  9. #9
    Zitat Zitat von Ineluki Beitrag anzeigen
    Opera ist ungetestet, waere also schoen, wenn mir jemand bescheid geben koennte, ob dort alles funktioniert.
    Ein BIld sagt mehr als tausend Worte

    Es funktioniert allerdings nicht so ganz wie es soll, denn der Turtle wackelt immer nur an dieser Stelle hin und her:

    Im Firefox läufts nicht nur schneller, der Turtle bewegt sich auch mit:

    Der Turtle-Code ist schon heftig. Gibt es eigentlich einen einfachen Trick, wie man so ein Bild in Turtle-Code umsetzt? Kann mir nämlich nicht vorstellen, dass du für die Wege des Turtles die Pixel abgezählt hast

  10. #10
    Die ppm2turtle.awk ist dazu da, den Turtle-Code des Bildes zu generieren. Wenn du in die Datei reinsiehst, findest du ausfuehrlich kommentiert, wie das Programm arbeitet. Effektiv gehe ich das ganze Bild Pixel fuer Pixel durch, ueberpruefe, ob der Pixel der aktuell zu bearbeitenden Farbe entspricht, und wenn ja, dann bewege ich die Turtle zu der entsprechdenen Position ohne Zeichnen, und mache einen kleinen Strich an Stelle des jeweiligen Pixels. Und damit der Turtle-Code nicht zu groß wird, zerlege ich die zeichenlose Bewegung der Turtle in Potenzen von 2 und und benutze die "Multipliziere $Length mit $Factor" und "Dividiere $Length mit $Factor" Befehle der Turtle um mich schneller in zuerst Y und dann X zu bewegen. Also ja, effektiv ist es im Moment Pixelzaehlen, aber automatisiert.

    Es waere natuerlich schoener, wenn die Turtle zusammenhaengende Bereiche zuerst geschlossen ausmalt, aber dafuer muesste man entweder das Traveling-Salesman-Problem auf einer wirklich grossen Datenbasis loesen oder mit Contourplots arbeiten, die in diesem Beispiel ganz schoen zerklueftet und loechrig sein koennen. Das war mir dann doch viel zu viel Aufwand fuer diesen Contest.

  11. #11
    Leider haben sich bisher die drei anderen, die noch was abgeben wollten, nicht gemeldet ... schade eigentlich. Aber na ja, fast eine Stunde haben sie ja noch.

    Damit sich das Warten aber auf jeden Fall gelohnt hat, habe ich unter der Woche schnell noch etwas gebastelt, was ich als zweite unabhaengige Abgabe einreiche.
    Da meine letzte Einsendung eher ein vektorisiertes Bitmap ist und nur spaerlich von den klassischen Turtlebefehlen gebrauch macht (ich drehe z.B. nur um 90 Grad), dachte ich mir, ich mache auch noch eine richtig turtlelastige reine Vektorgraphik. Und da mein letzter Code so viele Extentions von mir verwendet hat, hab ich diesen hier ausschliesslich mit den klassischen Befehlen gemacht.
    Zum rendern meines Turtlecodes verwende ich wieder meine schon eingereichten Renderer aus der ersten Abgabe. Zum generieren des Turtlecodes hab ich wieder ein awk-Script geschrieben. So, hier jetzt also meine Abgabe, getestet mit Firefox, Chrome und IE.

    Quellcode
    Turtlecode
    Fertige Bilddatei
    Fertige Bilddatei kompatibel zum Internet Explorer

    Allerdings hab ich mir nicht mehr die Muehe gemacht, die Dateien in meine HTML Dokumentation der letzten Abgabe einzupflegen. Daher liegen sie auch alle in einem extra Unterverzeichnis.

    So ... damit wars das beim Contest definitiv fuer mich. Moege die beste Einsendung gewinnen. Der Umfragethread kommt dann morgen.

    Geändert von Ineluki (14.04.2013 um 22:32 Uhr)

  12. #12
    Hier noch meine minimalistische Abgabe ( d.h, die notwendigen Anforderungen werden erfüllt ).

    Im Download ist der Quellcode, sowie ( hoffendlich ) Lauffähige Binaries für windows. Wer das ganze selbst compilieren will, braucht dafür noch Irrlicht 1.8 ( http://irrlicht.sourceforge.net/ ).

    download turtleG_csg_source_win32b.zip

    und noch ein finaler Screenshot mit einer erstellten Graphik:


    Als kleine Besonderheit können im Programm Variablen ( sub-turtle-graphics ) definiert und benutzt werden. Rekursionstiefe ist 10, kann aber in der defs.h beim selbstkompilieren angepasst werden.

  13. #13
    dfyx sitz leider noch an was anderem, das heute fertig werden soll
    Ich dachte eigentlich, dass er mit seinem beitrag schon fertig wäre

Berechtigungen

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