Реализуйте возможность рисовать фрактальное дерево.
Реализуйте возможность при изображении каждый раз изменять цвет линий на случайный.
python
import turtle
Далее создадим функцию `draw_fractal_tree`, которая будет принимать три параметра: длину ствола, глубину рекурсии и текущий уровень.
python
def draw_fractal_tree(branch_len, depth, level):
В самом начале функции, нам нужно проверить, достигли ли мы максимальной глубины рекурсии. Если да, то функция просто вернетсмя без выполнения дальнейших действий:
python
if level == depth:
return
Иначе, для рисования фрактального дерева мы будем использовать рекурсию. Сначала мы рисуем нижнюю ветку дерева:
python
turtle.forward(branch_len)
Затем поворачиваем на некоторый угол и рисуем две ветки, которые ветвятся от основной ветки:
python
turtle.right(45)
draw_fractal_tree(0.6 * branch_len, depth, level + 1)
turtle.left(90)
draw_fractal_tree(0.6 * branch_len, depth, level + 1)
turtle.right(45)
В данном случае, мы использовали значение угла поворота `45`. Затем мы вызываем нашу функцию `draw_fractal_tree` с новыми параметрами `0.6 * branch_len` (для уменьшения длины каждого следующего ствола) и `level + 1`
После того, как мы нарисовали фрактальное дерево внизу, мы хотим вернуться к исходной позиции:
python
turtle.up()
turtle.backward(branch_len)
turtle.down()
В конце функции, после того, как мы нарисовали первое фрактальное дерево, нам нужно установить цвет для следующей ветки:
python
turtle.color(random_color())
Напишем функцию `random_color`, которая будет возвращать случайный цвет:
python
def random_color():
colors = ["red", "blue", "green", "yellow", "orange", "purple"]
return random.choice(colors)
Теперь, для того чтобы нарисовать само фрактальное дерево и задать значение размера рисунка, вызовем нашу функцию `draw_fractal_tree`:
python
def main():
turtle.setup(800, 600)
turtle.left(90)
turtle.down()
draw_fractal_tree(100, 7, 0)
turtle.done()
if __name__ == "__main__":
main()
Сначала мы устанавливаем размер окна с помощью `turtle.setup(800, 600)`. Затем поворачиваем влево на 90 градусов и опускаем перо с помощью `turtle.down()`. Затем вызываем функцию `draw_fractal_tree` с параметрами `100` (длина ствола), `7` (глубина рекурсии) и `0` (текущий уровень).
В конце вызываем `turtle.done()`, чтобы окно не закрывалось после завершения программы.
Результатом выполнения данного кода будет рисунок фрактального дерева с случайными цветами линий.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет