37 lines
1,001 B
Text
37 lines
1,001 B
Text
# adjustable window altoght
|
|
# call the subroutine with the altoght you want
|
|
# it's possible to have a window that's large than your display
|
|
call barnsley(800)
|
|
end
|
|
|
|
subroutine barnsley(alto)
|
|
graphsize alto / 2, alto
|
|
color rgb(0, 255, 0)
|
|
|
|
f = alto / 10.6
|
|
c = alto / 4 - alto / 40
|
|
x = 0 : y = 0
|
|
|
|
for n = 1 to alto * 50
|
|
p = rand * 100
|
|
begin case
|
|
case p <= 1
|
|
nx = 0
|
|
ny = 0.16 * y
|
|
case p <= 8
|
|
nx = 0.2 * x - 0.26 * y
|
|
ny = 0.23 * x + 0.22 * y + 1.6
|
|
case p <= 15
|
|
nx = -0.15 * x + 0.28 * y
|
|
ny = 0.26 * x + 0.24 * y + 0.44
|
|
else
|
|
nx = 0.85 * x + 0.04 * y
|
|
ny = -0.04 * x + 0.85 * y + 1.6
|
|
end case
|
|
x = nx : y = ny
|
|
plot(c + x * f, alto - y * f)
|
|
next n
|
|
|
|
# remove comment (#) in next line to save window as .png file
|
|
# imgsave("Barnsley_fern.png")
|
|
end subroutine
|