image image


image

Hallo HAL 9000: Py5 und die übrige Processing-Welt 🤖

Congrats: Py5 scheint jetzt »ordentliches Mitglied« 🤪 der Processing-Familie geworden zu sein. Jedenfalls, wenn man diese Ankündigung liest: »Announcing Google Summer of Code 2022 Projects (and a few more)«. Dort werden nämlich ein Py5- und ein P5py-Projekt als von der Processing Foundation geförderte Projekte aufgeführt. Motiviert mich natürlich, meine eigenes, geplantes Py5-Projekt, den Port meiner Processing.py-Tutorials nach Py5 in Angriff zu nehmen. Und P5py sollte ich mir auch mal wieder anschauen, das habe ich lange genug vernachlässigt (das letzte Mal hatte ich im November 2018 einen Blick darauf geworfen).

Wenn ich das richtig sehe, gibt es neben Processing.py mindestens noch drei ernstzunehmende Python-Implementierungen im Processing-Ökosystem: Da sind zum einen Py5 und P5py, und zum anderen der Python-zu-P5.js-Port pyp5js. Es geht also voran mit Python in Processing!

Und auch Trinket mit pyp5js sollte ich endlich einmal testen. Das Wetter verspricht in den nächsten Tagen sonnig und warm zu werden. Also die beste Gelegenheit, mit meinem Chromebook auf unserer Terrasse zu hocken und diese Online-IDE damit anzuwerfen.

Das obige Bannerbild ist eine Fingerübung, die Euch und mir zeigen soll, wie einfach eine Übertragung von Processing.py nach Py5 ist. Der Originalsketch stammt aus dem wunderbaren Büchlein »Getting Started with Processing.py« von Allison Parrish, Ben Fry und Casey Reas (San Francisco 2016), das schon völlig zerfleddert auf meinem Schreibtisch liegt und aus dem ich seinerzeit alles gelernt habem was ich heute über Processing.py weiß.

Wer sich ebenfalls davon überzeugen will, hier ist der Quellcode:

# Response.py
# Nach einem Processing.py-Sketch von
# Allison Parrish, Ben Fry und Casey Reas
# »Getting Started with Processing.py«, San Francisco 2016, p70f

WIDTH = 360       # 360
HEIGHT = 480      # 480 / 315
x = 60            # 60
y = 440           # 440 / 300
radius = 45
body_height = 160 # 160 / 120
neck_height = 70  # 70 / 20
easing = 0.02

def setup():
    size(WIDTH, HEIGHT)
    window_move(1400, 30)
    window_title("Hallo HAL 9000! 🤖")
    ellipse_mode(RADIUS)

def draw():
    global x, neck_height, body_height
    target_x = mouse_x
    x += (target_x - x)*easing
    
    if is_mouse_pressed:
        neck_height = 16
        body_height = 90
    else:
        neck_height = 70
        body_height = 160
    
    ny = y - body_height - neck_height - radius
    background(0, 153, 204)
        
    # Neck
    stroke(255)
    line(x + 12, y - body_height, x + 12, ny)
    
    # Antennae
    line(x + 12, ny, x - 18, ny - 43)
    line(x + 12, ny, x + 42, ny - 99)
    line(x + 12, ny, x + 78, ny + 15)
    
    # Body
    no_stroke()
    fill(255, 204, 0)   # orange
    circle(x, y - 33, 33)
    fill(0)             # black
    rect(x - 45, y - body_height, 90, body_height - 33)
    
    # Head
    fill(0)             # black
    circle(x + 12, ny, radius)
    fill(255)           # white
    circle(x + 24, ny - 6, 14)
    fill(0, 0, 204)     # blue
    circle(x + 24, ny - 6, 3)

Ich glaube, ich werde als nächstes noch ein paar Beispiele mit diesem Roboter aus dem Büchlein nachprogrammieren. Hatte mir nämlich Spaß gemacht.


(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