EXTERNAL SUB draw_axes(xmin,xmax,ymin,ymax) LET ntick = 10 ! number of tick marks ! distance between tick marks on x-axis LET dx = (xmax - xmin)/ntick ! distance between tick marks on y-axis LET dy = (ymax - ymin)/ntick ! include margin SET WINDOW xmin - dx,xmax + dx,ymin - dy,ymax + dy LET x0 = max(0,xmin) LET y0 = max(0,ymin) IF ymin*ymax < 0 then LET y0 = 0 ELSE LET y0 = ymin END IF PLOT LINES: xmin,y0;xmax,y0 ! horizontal axis PLOT LINES: x0,ymin;x0,ymax ! vertical axis LET tx = 0.1*dy ! size of tick mark LET ty = 0.1*dx FOR itick = 0 to ntick LET x = xmin + itick*dx PLOT LINES: x,y0 - tx; x,y0 + tx ! draw ticks on x axis LET y = ymin + itick*dy PLOT LINES: x0 - ty,y; x0 + ty,y ! draw ticks on y axis NEXT itick END SUB SUB compute_aspect_ratio(r,x,y) LET m = 0.1*r ! margin LET size = r + m ! px, py: # pixels in horizonal and vertical direction ASK PIXELS px,py IF px > py then LET aspect_ratio = px/py LET x = aspect_ratio*size LET y = size ELSE LET aspect_ratio = py/px LET x = size LET y = aspect_ratio*size END IF END SUB