image image


image

Rotierende Dreiecke mit Py5 (und Thonny)

Neben dem DrawBot hatte ich ziemlich gleichzeitig ja auch noch Py5 vorgestellt und es tatsächlich auch noch zusammen mit dem Thonny-Plugin von Tristan Bunn installiert bekommen. Natürlich wollte ich damit auch etwas anstellen, aber da ich Tristan Bunn nicht vorgreifen wollte (er hatte ja angekündigt, die Processing.py-Sketche aus seinem Buch »Learn Python Visually« nach Py5 zu portieren), habe ich mir einen Sketch aus dem zweiten Buch zu Processing.py, das zur Zeit auf dem Markt ist, nämlich »Math Adventures with Python« von Peter Farrell, vorgenommen und zwar die »rotierenden Dreiecke«, die ich hier schon einmal als Programmier-Etüde implementiert hatte.

Damals war meine Version statisch, dieses Mal sollten die Dreiecke aber tatsächlich rotieren. Das habe ich mit diesem Code erreicht:

# rotating triangles final
# after Roger Antonsen (University of Oslo)
# and Peter Farrell (Math Adventures with Python, p. 93ff.)

def setup():
    size(600, 600)
    color_mode(HSB, 100)

t = 0

def draw():
    global t
    background(255, 0, 100)  # white
    translate(width/2, height/2)
    for i in range(90):
        rotate(radians(360/90))
        push_matrix()
        translate(200, 0)
        stroke(i%360, 100, 80)
        rotate(radians(t + 2*i*360/90))
        tri(100)
        pop_matrix()
    t += 0.5

def tri(length):
    """Zeichnet ein gleichseitiges Dreieck
       rund um den Mittelpunkt des Dreiecks."""
    no_fill()
    triangle(0, -length,
             -length*sqrt(3)/2, length/2,
             length*sqrt(3)/2, length/2)

Schade, daß ich noch nicht herausgefunden habe, wie man aus einer Animation in Py5 ein Filmchen erstellen kann (vielleich funktioniert hier ja tatsächlich Processings Movie Maker, sollte ich mal ausprobieren), es macht jedenfalls einen sehr majestätischen Eindruck, wenn die Dreiecke so langsam um ihr Zentrum kreisen. Den mathematischen Hintergrund habe ich in dem oben erwähnten Beitrag schon ausführlich beschrieben und Ihr könnt ihn dort nachlesen.

Lessons learned

 
  1. Man darf einen Py5-Sketch nicht einfach beenden, indem man den Close Button im Sketch-Fenster anklickt. Denn wenn man danach einen weiteren (oder den gleichen) Sketch startet, erhält man eine ziemlich unverständliche Fehlermeldung und nichts geht mehr, bis man Thonny neu startet. Stattdessen muß man entweder mit Thonnys Stop-Button oder via Ausführen -> Stopp/Restart ausführen (F2) den Sketch »ordentlich« beenden. Ich glaube mich zu erinnern, daß ich diese Fehlermeldung auch bei meinen Versuchen mit dem module mode erhalten hatte. Aufgrund dieser Erkenntnis sollte ich dieses Mode noch einmal testen. Still digging!
  2. Die Farbe weiß im HSB-Mode erhält man durch H = irgendetwas, S = 0 und B = 100. Muß einem ja auch erst einmal gesagt werden. 🤓
  3. Das so praktische und pythonische with push_matrix()-Statement scheint in Py5 nicht zu funktionieren. Stattdessen muß wohl jedes push_matrix() ohne Einrückungen mit einem pop_matrix() beendet werden. Schade!
  4. Es wäre schön, wenn es eine Möglichkeit gäbe, dem Sketch-Fenster einen Titel zu verpassen.
  5. Die Dokumentation zu Py5 sollte wegen der pythonischen Schreibweise der Funktionen immer offen in einem Browserfenster vorhanden sein (sie ist aber auch sonst sehr hilfreich).

Generell scheint aber Py5 trotz seine alpha-Status’ schon recht stabil zu sein und in der Kombination mit Thonny gut zu funktionieren. Ich werde auch hier noch weitere Tests fahren und berichten. Zusammen mit DrawBot sind das doch zwei schöne Spielzeuge für die nächsten Wochen.

Natürlich findet Ihr den Quellcode in meinem GitHub-Repositorium.


(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