以下是用 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 分形集。
Python绘制Julia分形集代码详解

原文地址: https://www.cveoy.top/t/topic/oRq1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录