Как создать фрактальные узоры в Python с Tkinter

Фракталы — это уникальные математические структуры, которые обладают самоподобием, что означает, что их части напоминают целое. Эти узоры встречаются в природе, например, в листьях, облаках или в структуре гор. В этой статье мы рассмотрим, как с помощью Python и библиотеки Tkinter можно создать фрактальные узоры.
Tkinter — это стандартная библиотека для создания графических интерфейсов в Python. Она позволяет легко рисовать на экране, что делает её отличным инструментом для визуализации фракталов.
Мы создадим простой фрактал, основанный на рекурсии, с использованием квадратных блоков. В качестве примера возьмем фрактал, подобный «Мандельброту» или фракталу Серпинского.
Код фрактала на Python с Tkinter
import tkinter as tk
def draw_fractal(canvas, x, y, size, level):
if level == 0:
return
# Нарисовать квадрат
canvas.create_rectangle(x, y, x + size, y + size, outline="black", width=2)
# Рекурсивно нарисовать меньшие квадраты
new_size = size / 3
draw_fractal(canvas, x, y, new_size, level-1)
draw_fractal(canvas, x + new_size, y, new_size, level-1)
draw_fractal(canvas, x + 2 * new_size, y, new_size, level-1)
draw_fractal(canvas, x, y + new_size, new_size, level-1)
draw_fractal(canvas, x + 2 * new_size, y + new_size, new_size, level-1)
draw_fractal(canvas, x, y + 2 * new_size, new_size, level-1)
draw_fractal(canvas, x + new_size, y + 2 * new_size, new_size, level-1)
draw_fractal(canvas, x + 2 * new_size, y + 2 * new_size, new_size, level-1)
# Создание окна
root = tk.Tk()
root.title("Fractal with Tkinter")
# Настройка холста
canvas = tk.Canvas(root, width=600, height=600, bg="white")
canvas.pack()
# Начальные параметры
start_x, start_y = 50, 50 # начальная позиция фрактала
size = 400 # размер большого квадрата
level = 4 # уровень рекурсии
# Рисуем фрактал
draw_fractal(canvas, start_x, start_y, size, level)
# Запуск основного цикла Tkinter
root.mainloop()
Объяснение кода
-
Импорт библиотеки Tkinter: Мы начинаем с импорта библиотеки
tkinter
и создания окна для рисования. Создаем холст с размерами 600x600 пикселей, на котором будем рисовать наш фрактал. -
Рекурсивная функция: Основной функцией для рисования фрактала является
draw_fractal
. Она рисует квадрат заданного размера и рекурсивно рисует меньшие квадраты вокруг каждого, уменьшая размер на каждом уровне рекурсии. -
Основная программа: После того как мы задали начальные параметры, мы вызываем функцию рисования фрактала и запускаем главный цикл Tkinter, чтобы отобразить результат.
Как запустить этот код
Чтобы запустить этот код, достаточно установить Python и библиотеку Tkinter. Tkinter уже входит в стандартную библиотеку Python, поэтому дополнительные установки не требуются. Просто скопируйте код в файл с расширением .py
и запустите его с помощью интерпретатора Python.
Заключение
В этой статье мы рассмотрели, как легко создать фрактальные узоры с помощью Python и Tkinter. Вы можете экспериментировать с параметрами, изменяя уровень рекурсии или размер фрактала, чтобы создавать более сложные и разнообразные узоры.
Если вы хотите научиться писать более сложные программы на Python и создавать различные полезные инструменты, рекомендуем вам пройти курс Написание лайфхаков на Python. Он поможет вам освоить множество полезных трюков, которые сделают вашу работу с Python еще более эффективной и продуктивной.
-
-
Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.