PROGRAM koch! improved output 8/9/95 by computing aspect ratio! generate triadic Koch curve using recursionLIBRARY "csgraphics"CALL initial(x1,y1,x2,y2,n)! draw Koch curve for different number of iterationsDO   LET k = 0   CALL draw(x1,y1,x2,y2,n)   DO                             ! pause until any key is hit      GET KEY k   LOOP UNTIL k <> 0   LET n = n + 1                  ! number of stages of generation   CLEARLOOP UNTIL k = ord("s")ENDSUB initial(x1,y1,x2,y2,n)    LET n = 0                     ! number of iterations    LET x1 = 1                    ! coordinates at left end of line    LET y1 = 5                    ! arbitrary units    LET x2 = 10                   ! coordinates at right end of line    LET y2 = 5    CALL compute_aspect_ratio(8,xwin,ywin)    SET WINDOW 0,xwin,0,ywin    ASK MAX COLOR mc    IF mc > 2 then SET COLOR "blue"END SUBSUB draw(x1,y1,x2,y2,n)    IF n > 0 then       LET dx = (x2 - x1)/3       LET dy = (y2 - y1)/3       LET x1n = x1 + dx       LET y1n = y1 + dy       LET x2n = x1 + 2*dx       LET y2n = y1 + 2*dy       ! rotate line segment (dx,dy) by 60 degs and add to (x1n,y1n)       LET xmid = 0.5*dx - 0.866*dy + x1n       LET ymid = 0.5*dy + 0.866*dx + y1n       CALL draw(x1,y1,x1n,y1n,n-1)       CALL draw(x1n,y1n,xmid,ymid,n-1)       CALL draw(xmid,ymid,x2n,y2n,n-1)       CALL draw(x2n,y2n,x2,y2,n-1)    ELSE       PLOT LINES: x1,y1;x2,y2    END IFEND SUB