/usr/lib/s9fes/help/make-canvas is in scheme9 2010.11.13-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | S9 LIB (canvas-draw canvas integer1 integer2 char) ==> unspecific
(canvas-draw-string canvas int1 int2 string) ==> unspecific
(canvas-dump canvas) ==> vector
(canvas-plot canvas integer1 integer2 char) ==> unspecific
(canvas-plot-line canvas int1 int2 int3 int4 char) ==> unspecific
(make-canvas integer1 integer2 integer3 integer4) ==> canvas
(load-from-library "char-canvas.scm")
This is a set of routines for drawing characters and lines on
a scaled, character-based (a.k.a. "ASCII Art") canvas.
MAKE-CANVAS creates a char canvas with a physical size of
x=INTEGER1 times y=INTEGER2 characters. The virtual size of
the canvas is x=INTEGER3 times y=INTEGER4 "pixels". "Real
coordinates" relate to the physical size of the canvas.
"Virtual coordinates" are translated to real coordinates by
scaling. Both types of coordinates are specified in X/Y
notation. The origin 0/0 is at the lower left corner of the
canvas. The new canvas will be filled with blanks initially.
CANVAS-DRAW draws character CHAR at position INTEGER1/INTEGER2.
It uses real coordinates. CANVAS-DRAWSTRING draws a string
instead of a single character. When the X or Y coordinate is
outside of the canvas, C will not be drawn. When STRING extends
beyond the the limits of the canvas, it will be clipped.
CANVAS-PLOT draws the character CHAR at the virtual position
INTEGER1/INTEGER2. CANVAS-PLOT-LINE draws a line from the
virtual position INT1/INT2 to INT3/INT4 using the character
CHAR. Lines originating or extending outside of the canvas
will be clipped.
CANVAS-DUMP returns a vector of strings that contain the
characters written to the canvas. The vector indexes are the
Y-coordinates, the string offsets the X-coordinates.
(let ((c (make-canvas 10 5 10 10)))
(canvas-plot-line c 0 9 9 0 #\#)
(canvas-plot-line c 0 0 9 9 #\*)
(canvas-dump c)) ==> #("## **"
" ## ** "
" ** "
" ** ## "
"** ##")
|