个人微信公众号,威海网站优化公司,网站开发与设计课程设计,电力网站建设方案一花一叶一世界,一草一木一浮生. 使用了四个不同的线性变换#xff0c;根据概率选择其中一个变换并更新 x 和 y 坐标。然后将生成的绿色点绘制出来#xff0c;形成一片蕨菜叶。
import numpy as np
import matplotlib.pyplot as pltdef fern_fractal(num_points):# 初始化坐…一花一叶一世界,一草一木一浮生. 使用了四个不同的线性变换根据概率选择其中一个变换并更新 x 和 y 坐标。然后将生成的绿色点绘制出来形成一片蕨菜叶。
import numpy as np
import matplotlib.pyplot as pltdef fern_fractal(num_points):# 初始化坐标x, y 0, 0points []for _ in range(num_points):# 生成随机数以选择变换r np.random.rand()# 根据概率选择变换if r 0.01:# 变换 1x_new 0y_new 0.16 * yelif r 0.86:# 变换 2x_new 0.85 * x 0.04 * yy_new -0.04 * x 0.85 * y 1.6elif r 0.93:# 变换 3x_new 0.2 * x - 0.26 * yy_new 0.23 * x 0.22 * y 1.6else:# 变换 4x_new -0.15 * x 0.28 * yy_new 0.26 * x 0.24 * y 0.44# 更新坐标x, y x_new, y_newpoints.append((x, y))return np.array(points)# 设置点的数量
num_points 100000
points fern_fractal(num_points)# 绘制分形
plt.figure(figsize(8, 12))
plt.plot(points[:, 0], points[:, 1], g., markersize0.5) # 绘制蕨菜叶
plt.axis(off) # 关闭坐标轴
plt.title(Fern Fractal)
plt.show()