RosettaCodeData/Task/Dragon-curve/Yabasic/dragon-curve-2.basic
2023-07-01 13:44:08 -04:00

28 lines
679 B
Text

clear screen
width = 512 : height = 512 : crad = 0.01745329
open window width, height
window origin "cc"
x = 75 : y = 120 : level = 18 : iters = 2**level : qiter = 510/iters
sub dragon(size, lev, d)
if lev then
dragon(size / sqrt(2), lev - 1, 1)
angle = angle - d * 90
dragon(size / sqrt(2), lev - 1, -1)
else
x = x - cos(angle * crad) * size
y = y + sin(angle * crad) * size
if iter*2<iters then
color 0,iter*qiter,255-iter*qiter
else
color qiter*iter-255,(iters-iter)*qiter,0
endif
line to x, y
iter = iter + 1
endif
end sub
dot x, y
dragon(300, level, 1)