Python 中的巴恩斯利蕨
在本教程中,我们将学习由 Michael Barnsley 创建的 Barnsley 蕨。Barnsley 蕨 的特征类似于 蕨 的形状。它是通过对四个称为 迭代函数系统 (IFS) 的数学方程式进行迭代而创建的。变换具有以下公式。
f(x,y)=$$\begin{bmatrix}a & b \c & d \end{bmatrix}\begin{bmatrix}x \y \end{bmatrix}+\begin{bmatrix}e \f \end{bmatrix}$$
来源 − 维基百科
变量的值为 −
来源 − 维基百科
Barnsley 蕨提出的四个方程式为 −
来源 − 维基百科
现在,我们将了解如何在 Python 中创建蕨形。
示例
# importing matplotlib module for the plot import matplotlib.pyplot as plot # importing random module to generate random integers for the plot import random # initialising the lists x = [0] y = [0] # initialising a variable to zero to track position current = 0 for i in range(1, 1000): # generating a random integer between 1 and 100 z = random.randint(1, 100) # checking the z range and appending corresponding values to x and y # appending values to the x and y if z == 1: x.append(0) y.append(0.16 * y[current]) if z >= 2 and z <= 86: x.append(0.85 * x[current] + 0.04 * y[current]) y.append(-0.04 * x[current] + 0.85 * y[current] +1.6) if z>= 87 and z<= 93: x.append(0.2 * x[current] - 0.26 * y[current]) y.append(0.23 * x[current] + 0.22*(y[current])+1.6) if z >= 94 and z <= 100: x.append(-0.15 * x[current] + 0.28 * y[current]) y.append(0.26 * x[current] + 0.24 * y[current] + 0.44) # incrementing the current value current += 1 # plotting the graph using x and y plot.scatter(x, y, s = 0.2, edgecolor = 'green') plot.show()
输出
如果你运行以上代码,你将获得以下结果。
结论
如果你对本教程有任何疑问,请在评论区提出。参考 −维基百科
广告