🔮Как создать фрактал в Питоне: пошаговая инструкция для начинающих
Для создания фрактала в Python вы можете использовать библиотеку matplotlib. Вот простой пример:
import numpy as np
import matplotlib.pyplot as plt
def fractal(x, y):
z = complex(x, y)
c = z
for i in range(100):
if abs(z) > 2:
return i
z = z * z + c
return 0
x = np.linspace(-2, 2, 1000)
y = np.linspace(-2, 2, 1000)
X, Y = np.meshgrid(x, y)
Z = np.array([fractal(x,y) for x, y in zip(np.ravel(X), np.ravel(Y))])
Z = Z.reshape(X.shape)
plt.imshow(Z, cmap='hot', extent=(-2, 2, -2, 2))
plt.colorbar()
plt.title('Фрактал Мандельброта')
plt.xlabel('Re(c)')
plt.ylabel('Im(c)')
plt.show()
Детальный ответ
Как создать фрактал в питоне
Фракталы - это удивительные геометрические фигуры, которые можно генерировать с помощью математических алгоритмов. В программировании можно использовать язык Python для создания и отображения различных видов фракталов. В этой статье я расскажу вам о том, как создать фрактал в Python.
Установка библиотеки Turtle
Для начала нам понадобится установить библиотеку Turtle. Она предоставляет нам удобные инструменты для рисования графики.
pip install turtle
Простой пример: фрактальное дерево
Давайте начнем с создания простого фрактала - фрактального дерева. Вот код, который реализует это:
import turtle
def draw_branch(branch_length):
if branch_length < 5:
return
else:
turtle.forward(branch_length)
turtle.right(20)
draw_branch(branch_length - 15)
turtle.left(40)
draw_branch(branch_length - 15)
turtle.right(20)
turtle.backward(branch_length)
turtle.speed(0)
turtle.left(90)
draw_branch(100)
turtle.done()
Этот код использует рекурсию для рисования веток фрактального дерева. Он начинает с отрисовки основной ветки, а затем вызывает себя для отрисовки более мелких веток на каждом уровне рекурсии. Когда длина ветки становится меньше 5, рекурсия останавливается.
Более сложный пример: фрактальный квадрат
Давайте перейдем к более сложному фракталу - фрактальному квадрату. Вот код, который реализует его:
import turtle
def draw_square(side_length, depth):
if depth == 0:
return
else:
for _ in range(4):
turtle.forward(side_length)
turtle.right(90)
turtle.penup()
turtle.forward(side_length / 3)
turtle.pendown()
draw_square(side_length / 3, depth - 1)
turtle.penup()
turtle.backward(side_length / 3)
turtle.pendown()
turtle.speed(0)
draw_square(200, 3)
turtle.done()
Этот код использует рекурсию для рисования фрактального квадрата. Он рисует квадрат определенного размера, а затем снова вызывает себя для отрисовки более маленьких квадратов внутри. Этот процесс повторяется до достижения определенной глубины.
Исследуйте и создавайте свои фракталы
Это только два примера фракталов, которые можно создать с помощью Python. Но мир фракталов огромен, и вы можете исследовать и создавать свои уникальные фракталы. Экспериментируйте с различными алгоритмами и параметрами, чтобы создать что-то по-настоящему удивительное!