📅  最后修改于: 2020-05-10 14:08:51             🧑  作者: Mango
Barnsley蕨类植物是数学家Michael Barnsley创建的分形形状。 这种分形的几何特征类似于天然蕨类植物,因此得名。 Barnsley蕨类植物是通过对由Barnsley引入的称为迭代函数系统(IFS)的四个数学方程式进行多次迭代而创建的。
Barnsley使用的转换具有以下公式:
其中,字母具有以下值:
a | b | C | d | Ë | F | p | 部分 |
0 | 0 | 0 | 0.16 | 0 | 0 | 0.01 | 干 |
0.85 | 0.04 | -0.04 | 0.85 | 0 | 1.60 | 0.85 | 小叶 |
0.20 | -0.26 | 0.23 | 0.22 | 0 | 1.60 | 0.07 | 大叶(左) |
-0.15 | 0.28 | 0.26 | 0.24 | 0 | 0.44 | 0.07 | 大叶(右) |
“ p”是概率。
因此,这四个方程为:
借助以上方程式,创建了蕨类植物。 现在让我们看一下相同的Python3实现。
# 导入必要的模块
import matplotlib.pyplot as plt
from random import randint
# 初始化列表
x = []
y = []
# 将第一个元素设置为0
x.append( 0 )
y.append( 0 )
current = 0
for range ( 50000 ): i ):
# 生成1到100之间的随机整数
z = randint( 100 )
# 方程的x和y坐标分别附加在列表中。概率为0.01
if z = = 1 :
x.append( 0 )
y.append( 0.16 * (y[current]))
# 概率为0.85
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 )
# 概率为 0.07
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 )
# 概率为 0.07
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 )
current = current + 1
plt.scatter(x, y, s = 0.2 , edgecolor = 'green' )
plt.show()
输出:
注意:整个输出取决于方程式的系数。 一个实验可能是每次更改系数并获得新的模式。