Zufallsmuster zeichnen a.k.a. Randomwalk

Heute haben wir zum Wiedereinstieg nach den Sommerferien mit dem Turtle Modul gezeichnet.

Dabei haben wir einen Random Walk erstellt, was nicht nur ein Beispiel für Ästhetik von Code, sondern auch ein essentielles Mittel in der Physik darstellt um Diffusion oder Proteinentfaltung zu simulieren.

Die Farben wurden hierfür aus einer von uns zusammengestellten Farbpalette per Zufallsmodul ausgewählt.

Weiterhin war wichtig, dass der Walk nicht aus dem sichtbaren Bereich verschwindet. Der Rote Rahmen visualisiert unsere gesetzen Grenzen, die allerdings im nächsten Bild noch nicht ganz eingehalten wurde.

Hier noch ein Live Beispiel

#Version 1.15, by fabi und peter, @InfHo

import turtle
import random
t = turtle.Turtle()
t.width(3)
t.speed(0)
turtle.bgcolor("black")

def rueckgeher():
  t.backward(40)
  t.right(180)

while True:
  posx = t.pos()[0]
  posy = t.pos()[1]
  print(t.pos())
  richtung = random.randint(1,8)
  if richtung == 1:
    t.left(90)
    
  if richtung == 2:
    t.right(90)
  
  if richtung == 3:
  	pass
  if richtung == 4:
    t.right(180)
  if richtung == 5:
  	t.goto(posx+20, posy+20)
    
  if richtung == 6:
    t.goto(posx-20, posy-20)
  if richtung == 7:
    t.goto(posx-20, posy+20)
  if richtung == 8:
    t.goto(posx+20, posy-20)
  # if abs(posx) > 400 or abs(posy) > 400:
  wert = 200
  if abs(posx) >= wert or abs(posy) >= wert :
    rueckgeher()


  t.forward(20)
  fabisfarben = ["red","yellow","blue","green","dark green","dark olive green","dark sea green","sea green",
                 "medium sea green","pale green","spring green","lawn green","medium spring green",
                 "green yellow","lime green","yellow green","forest green","olive drab","green"]
  t.color(random.choice(fabisfarben))