44 lines
790 B
Text
44 lines
790 B
Text
w = 390 : h = int(w * 11 / 16)
|
|
open window w, h
|
|
level = 18 : insize = 247
|
|
x = 92 : y = 94
|
|
|
|
iters = 2^level
|
|
qiter = 510/iters
|
|
SQ = sqrt(2) : QPI = pi/4
|
|
|
|
rotation = 0 : iter = 0 : rq = 1.0
|
|
dim rqs(level)
|
|
|
|
color 0,0,0
|
|
clear window
|
|
dragon()
|
|
|
|
sub dragon()
|
|
if level<=0 then
|
|
yn = sin(rotation)*insize + y
|
|
xn = cos(rotation)*insize + x
|
|
if iter*2<iters then
|
|
color 0,iter*qiter,255-iter*qiter
|
|
else
|
|
color qiter*iter-255,(iters-iter)*qiter,0
|
|
end if
|
|
line x,y,xn,yn
|
|
iter = iter + 1
|
|
x = xn : y = yn
|
|
return
|
|
end if
|
|
insize = insize/SQ
|
|
rotation = rotation + rq*QPI
|
|
level = level - 1
|
|
rqs(level) = rq : rq = 1
|
|
dragon()
|
|
rotation = rotation - rqs(level)*QPI*2
|
|
rq = -1
|
|
dragon()
|
|
rq = rqs(level)
|
|
rotation = rotation + rq*QPI
|
|
level = level + 1
|
|
insize = insize*SQ
|
|
return
|
|
end sub
|