Python绘制Julia分形集代码详解
以下是用 Python 代码绘制 Julia 分形集的示例,并添加了注释说明:
import numpy as np
import matplotlib.pyplot as plt
# 定义一个函数用于绘制 Julia 分形集
def julia(c, max_iter=256, thresh=2):
# 定义一个 2D 网格来表示所有复数点
x = np.linspace(-2, 2, 1000)
y = np.linspace(-2, 2, 1000)
xx, yy = np.meshgrid(x, y)
z = xx + 1j*yy
# 迭代计算
for i in range(max_iter):
z = z**2 + c
# 计算分形集的边界
mask = (np.abs(z) < thresh)
# 绘制分形集
plt.imshow(mask.T, origin='lower', extent=[-2,2,-2,2], cmap='magma')
plt.axis('off')
plt.show()
# 调用函数绘制 Julia 分形集
julia(-0.75+0.1j)
注释解释:
import numpy as np:导入 NumPy 库,并使用别名np来调用它。import matplotlib.pyplot as plt:导入 Matplotlib 库中的pyplot模块,并使用别名plt来调用它。def julia(c, max_iter=256, thresh=2)::定义一个名为julia的函数,它有三个参数:c表示 Julia 集的常数,max_iter表示最大迭代次数,thresh表示分形集的边界。x = np.linspace(-2, 2, 1000):生成一个从 -2 到 2 的等间隔数组,长度为 1000。y = np.linspace(-2, 2, 1000):生成一个从 -2 到 2 的等间隔数组,长度为 1000。xx, yy = np.meshgrid(x, y):使用meshgrid函数生成一个 2D 网格,用于表示所有复数点。z = xx + 1j*yy:将 2D 网格中的每个点转换成一个复数。for i in range(max_iter)::进行max_iter次迭代计算。z = z**2 + c:更新复数值,即进行 Julia 集的计算。mask = (np.abs(z) < thresh):计算分形集的边界,即将在thresh以外的点标记为 False,否则为 True。plt.imshow(mask.T, origin='lower', extent=[-2,2,-2,2], cmap='magma'):绘制分形集,其中mask.T表示将mask数组转置后作为绘图数据,origin='lower'表示将原点放在左下角,extent=[-2,2,-2,2]表示设置绘图范围,cmap='magma'表示使用颜色映射来表示分形集的不同部分。plt.axis('off'):关闭坐标轴。plt.show():显示绘图结果。julia(-0.75+0.1j):调用julia函数,绘制常数为-0.75+0.1j的 Julia 分形集。
原文地址: https://www.cveoy.top/t/topic/oRq1 著作权归作者所有。请勿转载和采集!