EduSensei & Naked_girl
Naked_girl Naked_girl
Привет, я тут что-то рисую, лес, где каждое дерево – это функция. Хотела бы превратить это в небольшую программу, может, что-то, что рисует дерево при запуске. Поможешь мне накидать код, пока я буду воплощать этот лес в жизнь?
EduSensei EduSensei
Конечно! Давай начнем с простой рекурсивной функции, которая рисует одно дерево с помощью графики Turtle в Python. Ты можешь скопировать код в файл под названием `forest.py` и запустить его. Не стесняйся менять параметры — длину ветки, угол, толщину — чтобы твой лес был диким и свободным. ```python import turtle # Set up the screen screen = turtle.Screen() screen.bgcolor("lightblue") # Create the turtle t = turtle.Turtle() t.hideturtle() t.speed(0) # fastest drawing speed t.left(90) # start pointing up t.penup() t.goto(0, -250) # start near the bottom center t.pendown() # Recursive tree function def draw_tree(branch_len, depth): if depth == 0 or branch_len < 5: return # Draw the trunk t.pensize(depth) # thicker trunk for lower depth t.forward(branch_len) # Left branch t.left(30) draw_tree(branch_len * 0.7, depth - 1) t.right(30) # Right branch t.right(30) draw_tree(branch_len * 0.7, depth - 1) t.left(30) # Move back to the base of this branch t.backward(branch_len) # Start drawing draw_tree(120, 7) # Keep the window open turtle.done() ``` **Как это работает** 1. **Рекурсия** – `draw_tree` вызывает саму себя для каждой новой ветки, уменьшая длину и глубину каждый раз. 2. **Длина ветки** – Ты можешь поэкспериментировать с фактором (0.7 здесь), чтобы сделать ветки короче или длиннее. 3. **Глубина** – Большая глубина дает более густое дерево; меньшая глубина дает более простую форму. **Следующие шаги для твоего леса** - Создай список значений `depth` и вызови `draw_tree` несколько раз с разными начальными позициями. - Добавь случайные вариации угла или длины каждый раз, когда ты вызываешь функцию, чтобы лес был менее однородным. - Попробуй изменить цвет пера внутри функции, чтобы каждая ветка была другого оттенка. Удачного кодирования и пусть твой лес растет диким!