Welcome, guest | Sign In | My Account | Store | Cart

Fern Fractal drawn using its Fractint IFS definition.

Python, 42 lines
 ``` 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 32 33 34 35 36 37 38 39 40 41 42``` ```# Fern IFS fractal # FB - 201003217 from PIL import Image import random imgx = 512 imgy = 512 image = Image.new("L", (imgx, imgy)) # Fractint IFS definition of Fern mat=[[0.0,0.0,0.0,0.16,0.0,0.0,0.01], [0.85,0.04,-0.04,0.85,0.0,1.6,0.85], [0.2,-0.26,0.23,0.22,0.0,1.6,0.07], [-0.15,0.28,0.26,0.24,0.0,0.44,0.07]] xa = -5.5 xb = 6.5 ya = -0.5 yb = 10.5 x=0.0 y=0.0 for k in range(imgx * imgy): p=random.random() if p <= mat: i=0 elif p <= mat + mat: i=1 elif p <= mat + mat + mat: i=2 else: i=3 x0 = x * mat[i] + y * mat[i] + mat[i] y = x * mat[i] + y * mat[i] + mat[i] x = x0 jx = int((x - xa) / (xb - xa) * (imgx - 1)) jy = (imgy - 1) - int((y - ya) / (yb - ya) * (imgy - 1)) image.putpixel((jx, jy), 255) image.save("fern.png", "PNG") ``` Created by FB36 on Sun, 21 Mar 2010 (MIT)