Last active
October 6, 2025 15:23
-
-
Save horstjens/aab103c1c1bfa7d9399e8ed25562ad79 to your computer and use it in GitHub Desktop.
tannenbaum
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import turtle | |
| bildschirm = turtle.Screen() | |
| bildschirm.title('mein turtle Programm') | |
| breite, höhe = 1200, 800 | |
| bildschirm.setup(breite, höhe) | |
| bildschirm.setworldcoordinates(0,0,breite, höhe) # ursprung links unten | |
| alex = turtle.Turtle() | |
| alex.shape("turtle") | |
| alex.speed(0) # sehr schnell, aber Bewegungen bleiben sichtbar | |
| #bildschirm.tracer(0,0) # unsichtbar zeichnen | |
| #bildschirm.update() # alles sichtbar machen | |
| def dreieck(breite=100, höhe=30, farbe="#2E7A27"): | |
| # Position und Richtung von Alex speichern | |
| position = alex.pos() | |
| richtung = alex.heading() | |
| alex.color(farbe, farbe) # pencolor und fillcolor | |
| alex.pendown() | |
| alex.begin_fill() | |
| alex.goto(position[0] - breite/2, position[1]) | |
| alex.goto(position[0], position[1] + höhe) | |
| alex.goto(position[0] + breite/2, position[1]) | |
| alex.goto(position) | |
| alex.end_fill() | |
| alex.penup() | |
| alex.setheading(richtung) | |
| #alex.forward(200) | |
| alex.penup() | |
| alex.goto(breite/2, höhe/2) | |
| dreieck() | |
| bildschirm.exitonclick() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import turtle | |
| bildschirm = turtle.Screen() | |
| bildschirm.title('mein turtle Programm') | |
| breite, höhe = 1200, 800 | |
| bildschirm.setup(breite, höhe) | |
| bildschirm.setworldcoordinates(0,0,breite, höhe) # ursprung links unten | |
| alex = turtle.Turtle() | |
| alex.shape("turtle") | |
| alex.speed(0) # sehr schnell, aber Bewegungen bleiben sichtbar | |
| #bildschirm.tracer(0,0) # unsichtbar zeichnen | |
| #bildschirm.update() # alles sichtbar machen | |
| def dreieck(breite=100, höhe=30, farbe="#2E7A27"): | |
| # Position von Alex speichern | |
| position = alex.pos() | |
| #richtung = alex.heading() | |
| alex.color(farbe, farbe) # pencolor und fillcolor | |
| alex.pendown() | |
| alex.begin_fill() | |
| alex.goto(position[0] - breite/2, position[1]) | |
| alex.goto(position[0], position[1] + höhe) | |
| alex.goto(position[0] + breite/2, position[1]) | |
| alex.goto(position) | |
| alex.end_fill() | |
| alex.penup() | |
| #alex.setheading(richtung) | |
| def baum(stammhöhe=150, stammbreite=20, startbreite=300, starthöhe=150, | |
| anzahl_dreiecke = 5, startfarbe=(0,0.3,0), endfarbe=(0,0.77,0), | |
| xfaktor=0.65, yfaktor=0.7): | |
| position = alex.pos() # Position von Alex speichern | |
| alex.pencolor("brown") # stamm malen | |
| alex.pensize(stammbreite) | |
| alex.pendown() | |
| alex.forward(stammhöhe) | |
| alex.pensize(1) # grüne dreiecke malen | |
| farbdelta = ( | |
| (endfarbe[0]-startfarbe[0]) / anzahl_dreiecke, # rotverschiebung | |
| (endfarbe[1]-startfarbe[1]) / anzahl_dreiecke, # grünverschiebung | |
| (endfarbe[2]-startfarbe[2]) / anzahl_dreiecke, # blauverschiebung | |
| ) | |
| farbe = startfarbe | |
| höhe = starthöhe | |
| breite = startbreite | |
| for _ in range(anzahl_dreiecke): # unterstrich als Schleifenvariable | |
| dreieck(breite, höhe, farbe ) | |
| breite *= xfaktor # kurzform für: breite = breite * xfaktor | |
| höhe *= yfaktor | |
| alex.forward(höhe) | |
| farbe = (farbe[0]+farbdelta[0], | |
| farbe[1]+farbdelta[1], | |
| farbe[2]+farbdelta[2], | |
| ) | |
| alex.penup() # zurück zur startposition gehen | |
| alex.goto(position) | |
| alex.setheading(90) # schaut nach oben, selber effekt wie alex.left(90) | |
| alex.penup() | |
| alex.goto(breite/2, höhe/20) # mitte unten | |
| baum() | |
| bildschirm.exitonclick() | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import turtle | |
| import random | |
| bildschirm = turtle.Screen() | |
| bildschirm.title('mein turtle Programm') | |
| breite, höhe = 1200, 800 | |
| bildschirm.setup(breite, höhe) | |
| bildschirm.setworldcoordinates(0,0,breite, höhe) # ursprung links unten | |
| alex = turtle.Turtle() | |
| alex.shape("turtle") | |
| #alex.speed(0) # sehr schnell, aber Bewegungen bleiben sichtbar | |
| bildschirm.tracer(0,0) # unsichtbar zeichnen | |
| #bildschirm.update() # alles sichtbar machen | |
| def dreieck(breite=100, höhe=30, farbe="#2E7A27"): | |
| # Position von Alex speichern | |
| position = alex.pos() | |
| #richtung = alex.heading() | |
| alex.color(farbe, farbe) # pencolor und fillcolor | |
| alex.pendown() | |
| alex.begin_fill() | |
| alex.goto(position[0] - breite/2, position[1]) | |
| alex.goto(position[0], position[1] + höhe) | |
| alex.goto(position[0] + breite/2, position[1]) | |
| alex.goto(position) | |
| alex.end_fill() | |
| alex.penup() | |
| #alex.setheading(richtung) | |
| def baum(stammhöhe=150, stammbreite=20, startbreite=300, starthöhe=150, | |
| anzahl_dreiecke = 5, startfarbe=(0,0.3,0), endfarbe=(0,0.77,0), | |
| xfaktor=0.65, yfaktor=0.7): | |
| position = alex.pos() # Position von Alex speichern | |
| alex.pencolor("brown") # stamm malen | |
| alex.pensize(stammbreite) | |
| alex.pendown() | |
| alex.forward(stammhöhe) | |
| alex.pensize(1) # grüne dreiecke malen | |
| farbdelta = ( | |
| (endfarbe[0]-startfarbe[0]) / anzahl_dreiecke, # rotverschiebung | |
| (endfarbe[1]-startfarbe[1]) / anzahl_dreiecke, # grünverschiebung | |
| (endfarbe[2]-startfarbe[2]) / anzahl_dreiecke, # blauverschiebung | |
| ) | |
| farbe = startfarbe | |
| höhe = starthöhe | |
| breite = startbreite | |
| for _ in range(anzahl_dreiecke): # unterstrich als Schleifenvariable | |
| dreieck(breite, höhe, farbe ) | |
| breite *= xfaktor # kurzform für: breite = breite * xfaktor | |
| höhe *= yfaktor | |
| alex.forward(höhe) | |
| farbe = (farbe[0]+farbdelta[0], | |
| farbe[1]+farbdelta[1], | |
| farbe[2]+farbdelta[2], | |
| ) | |
| alex.penup() # zurück zur startposition gehen | |
| alex.goto(position) | |
| alex.setheading(90) # schaut nach oben, selber effekt wie alex.left(90) | |
| alex.penup() | |
| # male einen Wald | |
| # range(start, stop, step) | |
| for y in range(höhe//10*8,-50 , -höhe//10): | |
| for x in range(0, breite, breite//20): | |
| alex.goto(x + random.randint(-100,100),y + random.randint(-50,50)) # mitte unten | |
| baum(stammhöhe = random.randint(20,100), | |
| startbreite= random.randint(100,300), | |
| starthöhe = random.randint(50,100), | |
| anzahl_dreiecke=random.randint(3,8), | |
| ) | |
| bildschirm.update() | |
| bildschirm.exitonclick() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment