This commit is contained in:
Dmitry Fedotov
2025-03-19 20:55:19 +03:00
commit b59801ab8f
3 changed files with 133 additions and 0 deletions

59
turtle_tree.py Executable file
View File

@@ -0,0 +1,59 @@
#!/usr/bin/env python3
from turtle import Pen
def draw_tree(pen, scale=50):
pen.color("brown")
for angle in range(int(pen.heading() - 80), int(pen.heading() + 60), 51):
pen.setheading(angle)
back = pen.pos()
pen.pd()
for _ in range(5):
pen.forward(scale)
pen.left(10)
if scale >= 10:
draw_tree(pen, scale // 2)
elif scale < 10:
draw_leaf(pen, scale)
else:
pass
pen.pu()
pen.setpos(back)
def draw_leaf(pen, scale=5):
back = pen.pos()
pen.color("green")
pen.pd()
factor_width = 1
factor_length = scale
for _ in range(20):
pen.forward(factor_length)
pen.begin_fill()
pen.circle(scale * factor_width)
pen.circle(-scale * factor_width)
pen.end_fill()
factor_width *= 0.8
factor_length *= 0.7
pen.setpos(back)
pen.color("brown")
def setup_pen():
pen = Pen()
pen.ht()
pen.pu()
pen.setheading(90)
pen.speed(0)
pen.screen.setup(1000, 550)
pen.screen.title("Beautiful tree :)")
pen.screen.bgcolor("white")
pen.setpos(0, -240)
return pen
if __name__ == '__main__':
pen = setup_pen()
## draw_leaf(pen, 50)
draw_tree(pen)
input('All done!\nPress Enter to quit')
exit()