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()

输出

如果你运行以上代码,你将获得以下结果。

结论

如果你对本教程有任何疑问,请在评论区提出。参考 −维基百科

更新于: 2019 年 11 月 1 日

344 次查看

开启你的 事业

完成课程,获得认证

现在开始
广告