image image


image

Die Drachenkurve mit der Schildkröte in Processing.py

Um das Turtle-Modul für Processing besser kennenzulernen bot sich die Drachenkurve aufgrund ihrer anschaulichen Konstruktion durch Papierfalten geradezu an. Insbesondere, da ich sie vor etwa drei Jahren schon einmal mit der Turtle aus (C-)Pythons Standard-Bibliothek implementiert hatte. Dadurch konnte ich lernen, welche Unterschiede es zwischen Pythons Standard-Turtle und dem Turtle-Modul für Processing gibt. Daher hier erst einmal der Quellcode in Processing.py, dem Python-Mode von Processing:

add_library('Turtle')
import math

num_gen = 12

def setup():
    global puff
    size(640, 400)
    this.surface.setTitle("Puff, the Magic Dragon")
    background(50)
    strokeWeight(2)
    stroke(150, 255, 100)
    puff = Turtle(this)
    puff.right(90)
    noLoop()

def draw():
    puff.penUp()
    puff.goToPoint(200, 160)
    puff.penDown()
    dragon(puff, 300, num_gen, 1)
    print("I did it, Babe")
    
def dragon(drag, s, n, flag):
    if n == 0:
        drag.forward(s)
    else:
        alpha = 45
        if flag == 1:
            alpha *= -1
            flag *= -1
        drag.left(alpha)
        dragon(drag, s/math.sqrt(2), n-1, -flag)
        drag.right(2*alpha)
        dragon(drag, s/math.sqrt(2), n-1, flag)
        drag.left(alpha)

Es gab eigentlich nur zwei wesentliche Unterschiede. Wie ich schon hier bemerkte, zeigt Processings-Turtle beim Start nicht nach Osten (Defaulteinstellung für Pythons Schildkröte), sondern – wie in Logo, der Muttersprache der Schildkröte – nach Norden. Und zum zweiten gilt natürlich das Koordinatensystem von Processing mit – bei Default – dem Nullpunkt in der linken, oberen Ecke, während bei Pythons Turtle der Nullpunkt des Koordinatensystems in der Mitte des Fensters liegt. Trotzdem liegt auch bei Processing der Startpunkt der Turtle in der Mitte des Fensters, nämlich bei (width/2, height/2). Das hat natürlich den Vorteil, daß ohne Verrenkungen die anderen Zeichenbefehle von Processing(.py) genutzt werden können. Sollte es aus didaktischen Gründen jedoch gewünscht sein, den Ursprung des Koordinatensystems in die Mitte des Fensters zu legen, kann das in Processing durch eine Koordinatentransformation leicht implementiert werden.

Ich habe jedenfalls Blut geleckt und werde sicher noch ein paar mehr oder weniger seltsame Dinge mit der Schildkröte in Processing.py anstellen. Still digging!

image


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter Rentner, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung

Diese Spalte wurde absichtlich leergelassen!


Werbung


image  image  image
image  image  image


image