Barnsley Fern in Python
在本教程中,我们将学习由Michael Barnsley创建的Barnsley Fern。巴恩斯利蕨的特征类似于蕨的形状。它是通过迭代称为迭代函数系统(IFS)的四个数学方程创建的。转换具有以下公式。
f(x,y)= $$ egin {bmatrix} a&b \ c&d end {bmatrix} egin {bmatrix} x \ y end {bmatrix} + egin {bmatrix} e \ f end {bmatrix} $$
资源 ?维基百科
变量的值是-
资源 ?维基百科
Barnsley Fern提出的四个方程是-
资源 ?维基百科
现在,我们将看到在Python中创建蕨形的代码。
例
<!-
现场演示
->
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # 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() |
输出量
如果运行上面的代码,您将得到以下结果。
结论
如果您对本教程有任何疑问,请在评论部分中提及。
参考?维基百科