2023-09-09 15:52:32 +03:00
|
|
|
use canvas
|
2015-07-11 21:19:59 +03:00
|
|
|
|
|
|
|
w = 800 h = 600
|
|
|
|
window("Fractal rectangle demo", w, h)
|
|
|
|
fractal(w/2, h/2, w/2)
|
|
|
|
repaint()
|
|
|
|
|
|
|
|
def rect(x, y, w, h) {
|
|
|
|
line(x, y, x + w, y)
|
|
|
|
line(x + w, y, x + w, y + h)
|
|
|
|
line(x, y + h, x + w, y + h)
|
|
|
|
line(x, y, x, y + h)
|
|
|
|
}
|
|
|
|
|
|
|
|
def fractal(cx, cy, size) {
|
|
|
|
if size >= 2 {
|
2016-02-14 21:24:06 +02:00
|
|
|
s2 = size / 2
|
2015-07-11 21:19:59 +03:00
|
|
|
color(0, 0, 255 - size * 255 / w/2)
|
2016-02-14 21:24:06 +02:00
|
|
|
rect(cx-s2, cy-s2, size, size)
|
|
|
|
fractal(cx-s2, cy-s2, s2)
|
|
|
|
fractal(cx+s2, cy-s2, s2)
|
|
|
|
fractal(cx-s2, cy+s2, s2)
|
|
|
|
fractal(cx+s2, cy+s2, s2)
|
2015-07-11 21:19:59 +03:00
|
|
|
}
|
|
|
|
}
|