Вы можете использовать рекурсию, чтобы нарисовать свои формы. Рекурсия состоит в том случае, когда функция вызывает себя с условием остановки.
Известный пример рекурсии – «эффект ДРОСТЕ», но в отличие от рекурсии в программировании нет условия остановки. Он продолжает продолжаться навсегда.
Хорошо, так сказать дерево. Дерево имеет ветви, каждая ветвь имеет ветки. Эти ветвь у ветвей и так далее.
Рекурсивная функция может нарисовать себе свои ветви, их ветви. Ясно, что вам нужно использовать рекурсию, чтобы нарисовать дерево со всеми его ветвями.
Ниже приведен код примером:
#!/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”