65 lines
1.6 KiB
Python
65 lines
1.6 KiB
Python
import turtle
|
|
|
|
def draw_square(t, size):
|
|
for i in range(4):
|
|
t.forward(size)
|
|
t.left(90)
|
|
|
|
# draw_square(turtle, 100)
|
|
|
|
def draw_recursive_stairs(t, size, steps):
|
|
if steps == 0:
|
|
return
|
|
t.left(90)
|
|
t.forward(size)
|
|
t.right(90)
|
|
t.forward(size)
|
|
draw_recursive_stairs(t, size, steps - 1)
|
|
|
|
# draw_recursive_stairs(turtle, 20, 5)
|
|
|
|
def draw_recursive_tree(t, size, größe):
|
|
if größe == 0:
|
|
return
|
|
t.forward(size)
|
|
t.left(30)
|
|
draw_recursive_tree(t, size * 0.7, größe - 1)
|
|
t.right(60)
|
|
draw_recursive_tree(t, size * 0.7, größe - 1)
|
|
t.left(30)
|
|
t.backward(size)
|
|
turtle.left(90)
|
|
#draw_recursive_tree(turtle, 100, 5)
|
|
# Ich möchte einen Code schreiben der erst ein 64 Quadrat zeichnet
|
|
# und dann rekursiv immer zwei halb so große Quadrate oben links und rechts über das ursprüngliche Quadrat zeichnet.
|
|
# Bis die Seitenlänge = 1 ist.
|
|
def draw_recursive_squares(t, length):
|
|
if length < 1:
|
|
return
|
|
|
|
draw_square(t, length)
|
|
|
|
# Position des aktuellen Quadrats
|
|
x = t.xcor()
|
|
y = t.ycor()
|
|
|
|
# Turtle für oben links
|
|
left_turtle = t.clone()
|
|
left_turtle.penup()
|
|
left_turtle.goto(x - length * 1.5, y + length)
|
|
left_turtle.pendown()
|
|
|
|
# Turtle für oben rechts
|
|
right_turtle = t.clone()
|
|
right_turtle.penup()
|
|
right_turtle.goto(x + length , y + length)
|
|
right_turtle.pendown()
|
|
|
|
# Beide Äste rekursiv weiterführen
|
|
draw_recursive_squares(left_turtle, length / 2)
|
|
draw_recursive_squares(right_turtle, length / 2)
|
|
|
|
turtle.speed(10)
|
|
draw_recursive_squares(turtle, 64)
|
|
|
|
turtle.done() |