Give the animation of the curve time to cycle!
This is an interesting structure/curve, where each iteration takes you into more, spacefilling detail. Colouring adds to the effect.
Interestingly it can be drawn by totally different methods.
nomainwin mainwin 50 20 WindowHeight =620 WindowWidth =690 open "Dragon Curve by command string" for graphics_nsb as #a #a, "trapclose [quit]" #a "down" Turn$ ="R" Pace =300 s = 16 j = 0 n = 1 [again] print Turn$ #a "cls ; goto 230 420 ; north ; down ; fill black ; turn -"; 45 *j for i =1 to len( Turn$) v =255 *i /len( Turn$) #a "color "; v; " 120 "; 255 -v #a "go "; Pace if mid$( Turn$, i, 1) ="R" then #a "turn 90" else #a "turn -90" next i #a "color 255 120 0" #a "go "; Pace #a "flush" FlippedTurn$ ="" for i =len( Turn$) to 1 step -1 if mid$( Turn$, i, 1) ="R" then FlippedTurn$ =FlippedTurn$ +"L" else FlippedTurn$ =FlippedTurn$ +"R" next i Turn$ =Turn$ +"R" +FlippedTurn$ Pace =max( Pace /1.41, 1) j =j +1 scan timer 1000, [j] wait [j] timer 0 #a "flush" #a "getbmp drawing 1 1 620 590" bmpsave "drawing", "dragon"; str$( n); ".bmp" unloadbmp "drawing" n =n +1 if len( Turn$) <40000 then goto [again] wait [quit] close #a end
nomainwin global pi: pi =4 *atn( 1) WindowHeight =850 WindowWidth =1320 open "Dragon Curve" for graphics_nsb as #a print #a, "trapclose quit" #a "down ; fill darkblue ; color 0 0 200" s45 =sinrad( 45) c45 =cosrad( 45) s135 =sinrad( 135) c135 =cosrad( 135) K =1 /2^0.5 x1=0.7 y1 =0.3 for k =1 to 1e5 if rnd( 1) <=0.5 then x2 =K *( c45 *x1 -s45 *y1) y2 =K *( s45 *x1 +c45 *y1) else x2 =K *( c135 *x1 -s135 *y1) +1 y2 =K *( s135 *x1 +c135 *y1) end if print #a, "set "; str$( int( 450 +700 *x2)); " "; str$( int( 500 -650 *y2)) x1 =x2 y1 =y2 R =int( 256 *rnd( 1)) if k mod 100 =0 then print #a, "color "; str$( R); " 0 "; str$( 255 -R) next k wait sub quit h$ close #a end end sub function sinrad( th) sinrad =sin( th *2 *pi /360) end function function cosrad( th) cosrad =cos( th *2 *pi /360) end function