Вы можете использовать рекурсию, чтобы нарисовать свои формы. Рекурсия состоит в том случае, когда функция вызывает себя с условием остановки.
Известный пример рекурсии – «эффект ДРОСТЕ», но в отличие от рекурсии в программировании нет условия остановки. Он продолжает продолжаться навсегда.
Хорошо, так сказать дерево. Дерево имеет ветви, каждая ветвь имеет ветки. Эти ветвь у ветвей и так далее.
Рекурсивная функция может нарисовать себе свои ветви, их ветви. Ясно, что вам нужно использовать рекурсию, чтобы нарисовать дерево со всеми его ветвями.
Ниже приведен код примером:
#!/usr/bin/python3
from turtle import Turtle, mainloop
def tree(plist, l, a, f):
""" plist is list of pens
l is length of branch
a is half of the angle between 2 branches
f is factor by which branch is shortened
from level to level."""
if l > 5:
lst = []
for p in plist:
p.forward(l)
q = p.clone()
p.left(a)
q.right(a)
lst.append(p)
lst.append(q)
tree(lst, l*f, a, f)
def main():
p = Turtle()
p.color("green")
p.pensize(5)
p.hideturtle()
p.speed(100)
p.left(90)
p.penup()
p.goto(0,-200)
p.pendown()
t = tree([p], 200, 65, 0.6)
main()
Черепаха была спрятана с
p.hideturtle()
Без этой линии дерево выглядит лучше:
Ссылки по теме:
Оригинал: “https://dev.to/petercour/recursion-draw-a-tree-with-python-turtle-7f”