image image


Ein bunter Pythagoras-Baum mit (C)Pythons Schildkröte

Hier schrieb ich, daß ich mir sicher sei, daß (C)Pythons Turtle-Modul Methoden enthält, um ein von der Schildkröte gezeichnetes Polygon zu füllen. Und da ein Blick in die Dokumentation mir zeigte, daß dem tatsächlich so ist, mußte ich doch gleich einen symmetrischen Pythagoras-Baum in bunt implementieren.

image

Die Füllung erfolgt ganz einfach. Man muß das zu füllende, von der Turtle gezeichnete Polygon mit begin_fill() und end_fill() klammern. Natürlich darf man nicht vergessen, vorher mit turtle.color() die Füll- und Randfarben festzulegen.

Der Rest des Quellcodes ist – bis auf die Farben – mit dem Processing.py-Sketch, mit dem ich einen einfarbigen, ungefüllten Pythagoras-Baum implementiert hatte, nahezu identisch:

import turtle as t
import math

WIDTH = 640
HEIGHT = 480

palette = [(189, 183, 110), (0, 100, 0), (34, 139, 105),
           (152, 251, 152), (85, 107, 47), (139, 69, 19),
           (154, 205, 50), (107, 142, 35), (139, 134, 78),
           (139, 115, 85)]

wn = t.Screen()
wn.colormode(255)
wn.bgcolor("#2b3e50")
wn.setup(width = WIDTH, height = HEIGHT)
wn.title("Symmetrischer Pythagoras-Baum")

p = t.Turtle()
p.speed(0)
p.color(0, 0, 0)
p.setheading(90)

def tree(s):
    if s < 2:
        return
    quadrat(s)
    p.forward(s)
    s1 = s/math.sqrt(2)
    p.left(45)
    tree(s1)
    p.right(90)
    p.forward(s1)
    tree(s1)
    p.back(s1)
    p.left(45)
    p.back(s)

def quadrat(s):
    p.color(palette[int(s - 2)%10], palette[int(s - 2)%10])
    p.begin_fill()
    for _ in range(4):
        p.forward(s)
        p.right(90)
    p.end_fill()
        

p.penup()
p.setpos(-50, -HEIGHT/2 + 50)
# Bildschirm-Refresh ausschalten
wn.tracer(0)
p.pendown()
tree(100)
p.hideturtle()
# Bildschirm-Refresh wieder einschalten
wn.update()

print("I did it, Babe")

wn.mainloop()

Nun bin ich hin- und hergerissen: Soll ich weiter mit (C)Pythons Schildkröte spielen oder soll ich mich um P5 (Python) kümmern? So viel zu spielen, so wenig Zeit …


(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