Artifact 36cfca72a54c325c13954fa0e6e9152aac432a16:


0000: 3c 68 31 3e 3c 74 74 3e 70 72 69 6d 69 74 69 76  <h1><tt>primitiv
0010: 65 73 3c 2f 74 74 3e 20 4d 6f 64 75 6c 65 3c 2f  es</tt> Module</
0020: 68 31 3e 0a 0a 3c 68 32 3e 53 79 6e 6f 70 73 69  h1>..<h2>Synopsi
0030: 73 3c 2f 68 32 3e 0a 0a 3c 74 61 62 6c 65 3e 0a  s</h2>..<table>.
0040: 09 3c 74 72 3e 0a 09 09 3c 74 68 3e 52 61 63 6b  .<tr>...<th>Rack
0050: 65 74 3c 2f 74 68 3e 0a 09 09 3c 74 64 3e 3c 63  et</th>...<td><c
0060: 6f 64 65 3e 28 72 65 71 75 69 72 65 20 28 70 6c  ode>(require (pl
0070: 61 6e 65 74 20 6d 75 72 70 68 79 2f 63 61 6e 76  anet murphy/canv
0080: 61 73 2d 64 72 61 77 3a 31 3a 30 2f 70 72 69 6d  as-draw:1:0/prim
0090: 69 74 69 76 65 73 29 29 3c 2f 63 6f 64 65 3e 3c  itives))</code><
00a0: 2f 74 64 3e 0a 09 3c 2f 74 72 3e 0a 09 3c 74 72  /td>..</tr>..<tr
00b0: 3e 0a 09 09 3c 74 68 3e 43 48 49 43 4b 45 4e 3c  >...<th>CHICKEN<
00c0: 2f 74 68 3e 0a 09 09 3c 74 64 3e 3c 63 6f 64 65  /th>...<td><code
00d0: 3e 28 72 65 71 75 69 72 65 2d 65 78 74 65 6e 73  >(require-extens
00e0: 69 6f 6e 20 63 61 6e 76 61 73 2d 64 72 61 77 2d  ion canvas-draw-
00f0: 70 72 69 6d 69 74 69 76 65 73 29 3c 2f 63 6f 64  primitives)</cod
0100: 65 3e 3c 2f 74 64 3e 0a 09 3c 2f 74 72 3e 0a 3c  e></td>..</tr>.<
0110: 2f 74 61 62 6c 65 3e 0a 0a 44 72 61 77 69 6e 67  /table>..Drawing
0120: 20 70 72 69 6d 69 74 69 76 65 73 2e 0a 0a 3c 68   primitives...<h
0130: 32 3e 50 6f 69 6e 74 73 3c 2f 68 32 3e 0a 0a 3c  2>Points</h2>..<
0140: 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73  h3><a id="canvas
0150: 2d 70 69 78 65 6c 5f 22 3e 3c 63 6f 64 65 3e 3c  -pixel_"><code><
0160: 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 70  nowiki>(canvas-p
0170: 69 78 65 6c 21 20 5b 63 61 6e 76 61 73 20 63 61  ixel! [canvas ca
0180: 6e 76 61 73 3f 5d 20 5b 78 20 69 6e 74 65 67 65  nvas?] [x intege
0190: 72 3f 5d 20 5b 79 20 69 6e 74 65 67 65 72 3f 5d  r?] [y integer?]
01a0: 20 5b 63 6f 6c 6f 72 20 69 6e 74 65 67 65 72 3f   [color integer?
01b0: 20 28 63 61 6e 76 61 73 2d 66 6f 72 65 67 72 6f   (canvas-foregro
01c0: 75 6e 64 20 63 61 6e 76 61 73 29 5d 29 20 e2 86  und canvas)]) â†
01d0: 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e  ’ void?</nowiki>
01e0: 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e  </code></a></h3>
01f0: 0a 0a 44 72 61 77 73 20 61 20 73 69 6e 67 6c 65  ..Draws a single
0200: 20 70 69 78 65 6c 20 6f 66 20 74 68 65 20 67 69   pixel of the gi
0210: 76 65 6e 20 63 6f 6c 6f 72 20 6f 6e 20 74 68 65  ven color on the
0220: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a   given canvas...
0230: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61  <h3><a id="canva
0240: 73 2d 6d 61 72 6b 21 22 3e 3c 63 6f 64 65 3e 3c  s-mark!"><code><
0250: 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 6d  nowiki>(canvas-m
0260: 61 72 6b 21 20 5b 63 61 6e 76 61 73 20 63 61 6e  ark! [canvas can
0270: 76 61 73 3f 5d 20 5b 78 20 69 6e 74 65 67 65 72  vas?] [x integer
0280: 3f 5d 20 5b 79 20 69 6e 74 65 67 65 72 3f 5d 29  ?] [y integer?])
0290: 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69   → void?</nowi
02a0: 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f  ki></code></a></
02b0: 68 33 3e 0a 0a 44 72 61 77 73 20 61 20 6d 61 72  h3>..Draws a mar
02c0: 6b 65 72 20 73 79 6d 62 6f 6c 20 6f 6e 20 74 68  ker symbol on th
02d0: 65 20 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a  e given canvas..
02e0: 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76  .<h3><a id="canv
02f0: 61 73 2d 6d 61 72 6b 2d 74 79 70 65 22 3e 3c 63  as-mark-type"><c
0300: 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e  ode><nowiki>(can
0310: 76 61 73 2d 6d 61 72 6b 2d 74 79 70 65 20 5b 63  vas-mark-type [c
0320: 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20  anvas canvas?]) 
0330: e2 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77  → symbol?</now
0340: 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c  iki></code></a><
0350: 2f 68 33 3e 0a 0a 52 65 74 72 69 65 76 65 73 20  /h3>..Retrieves 
0360: 74 68 65 20 63 75 72 72 65 6e 74 20 6d 61 72 6b  the current mark
0370: 65 72 20 73 79 6d 62 6f 6c 20 74 79 70 65 20 66  er symbol type f
0380: 6f 72 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e  or the given can
0390: 76 61 73 2e 20 50 6f 73 73 69 62 6c 65 20 76 61  vas. Possible va
03a0: 6c 75 65 73 0a 61 72 65 0a 0a 20 20 2a 20 20 3c  lues.are..  *  <
03b0: 63 6f 64 65 3e 27 2b 3c 2f 63 6f 64 65 3e 20 6f  code>'+</code> o
03c0: 72 20 3c 63 6f 64 65 3e 27 70 6c 75 73 3c 2f 63  r <code>'plus</c
03d0: 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e  ode>.  *  <code>
03e0: 27 2a 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f  '*</code> or <co
03f0: 64 65 3e 27 73 74 61 72 3c 2f 63 6f 64 65 3e 0a  de>'star</code>.
0400: 20 20 2a 20 20 3c 63 6f 64 65 3e 27 30 3c 2f 63    *  <code>'0</c
0410: 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 27 63  ode> or <code>'c
0420: 69 72 63 6c 65 3c 2f 63 6f 64 65 3e 0a 20 20 2a  ircle</code>.  *
0430: 20 20 3c 63 6f 64 65 3e 27 4f 3c 2f 63 6f 64 65    <code>'O</code
0440: 3e 20 6f 72 20 3c 63 6f 64 65 3e 27 68 6f 6c 6c  > or <code>'holl
0450: 6f 77 2d 63 69 72 63 6c 65 3c 2f 63 6f 64 65 3e  ow-circle</code>
0460: 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 58 3c 2f  .  *  <code>'X</
0470: 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 27  code> or <code>'
0480: 78 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63  x</code>.  *  <c
0490: 6f 64 65 3e 27 62 6f 78 3c 2f 63 6f 64 65 3e 0a  ode>'box</code>.
04a0: 20 20 2a 20 20 3c 63 6f 64 65 3e 27 68 6f 6c 6c    *  <code>'holl
04b0: 6f 77 2d 62 6f 78 3c 2f 63 6f 64 65 3e 0a 20 20  ow-box</code>.  
04c0: 2a 20 20 3c 63 6f 64 65 3e 27 64 69 61 6d 6f 6e  *  <code>'diamon
04d0: 64 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63  d</code>.  *  <c
04e0: 6f 64 65 3e 27 68 6f 6c 6c 6f 77 2d 64 69 61 6d  ode>'hollow-diam
04f0: 6f 6e 64 3c 2f 63 6f 64 65 3e 0a 0a 3c 68 33 3e  ond</code>..<h3>
0500: 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 6d 61  <a id="canvas-ma
0510: 72 6b 2d 74 79 70 65 2d 73 65 74 5f 22 3e 3c 63  rk-type-set_"><c
0520: 6f 64 65 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 28 63  ode>..<nowiki>(c
0530: 61 6e 76 61 73 2d 6d 61 72 6b 2d 74 79 70 65 2d  anvas-mark-type-
0540: 73 65 74 21 20 5b 63 61 6e 76 61 73 20 63 61 6e  set! [canvas can
0550: 76 61 73 3f 5d 20 5b 6d 61 72 6b 2d 74 79 70 65  vas?] [mark-type
0560: 20 73 79 6d 62 6f 6c 3f 5d 29 20 e2 86 92 20 76   symbol?]) → v
0570: 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 62 72  oid?</nowiki><br
0580: 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 28 73 65 74 21  >..<nowiki>(set!
0590: 20 28 63 61 6e 76 61 73 2d 6d 61 72 6b 2d 74 79   (canvas-mark-ty
05a0: 70 65 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61  pe [canvas canva
05b0: 73 3f 5d 29 20 5b 6d 61 72 6b 2d 74 79 70 65 20  s?]) [mark-type 
05c0: 73 79 6d 62 6f 6c 3f 5d 29 20 e2 86 92 20 76 6f  symbol?]) → vo
05d0: 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 0a 3c 2f 63  id?</nowiki>.</c
05e0: 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 53  ode></a></h3>..S
05f0: 65 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 20  ets the current 
0600: 6d 61 72 6b 65 72 20 73 79 6d 62 6f 6c 20 74 79  marker symbol ty
0610: 70 65 20 66 6f 72 20 74 68 65 20 67 69 76 65 6e  pe for the given
0620: 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 33 3e 3c 61   canvas...<h3><a
0630: 20 69 64 3d 22 63 61 6e 76 61 73 2d 6d 61 72 6b   id="canvas-mark
0640: 2d 73 69 7a 65 22 3e 3c 63 6f 64 65 3e 3c 6e 6f  -size"><code><no
0650: 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 6d 61 72  wiki>(canvas-mar
0660: 6b 2d 73 69 7a 65 20 5b 63 61 6e 76 61 73 20 63  k-size [canvas c
0670: 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20 69 6e 74  anvas?]) → int
0680: 65 67 65 72 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f  eger?</nowiki></
0690: 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a  code></a></h3>..
06a0: 52 65 74 72 69 65 76 65 73 20 74 68 65 20 63 75  Retrieves the cu
06b0: 72 72 65 6e 74 20 6d 61 72 6b 65 72 20 73 79 6d  rrent marker sym
06c0: 62 6f 6c 20 73 69 7a 65 20 66 6f 72 20 74 68 65  bol size for the
06d0: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a   given canvas...
06e0: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61  <h3><a id="canva
06f0: 73 2d 6d 61 72 6b 2d 73 69 7a 65 2d 73 65 74 5f  s-mark-size-set_
0700: 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 69 6b  "><code>..<nowik
0710: 69 3e 28 63 61 6e 76 61 73 2d 6d 61 72 6b 2d 73  i>(canvas-mark-s
0720: 69 7a 65 2d 73 65 74 21 20 5b 63 61 6e 76 61 73  ize-set! [canvas
0730: 20 63 61 6e 76 61 73 3f 5d 20 5b 73 69 7a 65 20   canvas?] [size 
0740: 69 6e 74 65 67 65 72 3f 5d 29 20 e2 86 92 20 76  integer?]) → v
0750: 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 62 72  oid?</nowiki><br
0760: 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 28 73 65 74 21  >..<nowiki>(set!
0770: 20 28 63 61 6e 76 61 73 2d 6d 61 72 6b 2d 73 69   (canvas-mark-si
0780: 7a 65 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61  ze [canvas canva
0790: 73 3f 5d 29 20 5b 73 69 7a 65 20 69 6e 74 65 67  s?]) [size integ
07a0: 65 72 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c  er?]) → void?<
07b0: 2f 6e 6f 77 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e  /nowiki>.</code>
07c0: 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 53 65 74 73 20  </a></h3>..Sets 
07d0: 74 68 65 20 63 75 72 72 65 6e 74 20 6d 61 72 6b  the current mark
07e0: 65 72 20 73 79 6d 62 6f 6c 20 73 69 7a 65 20 66  er symbol size f
07f0: 6f 72 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e  or the given can
0800: 76 61 73 2e 0a 0a 3c 68 32 3e 4c 69 6e 65 73 3c  vas...<h2>Lines<
0810: 2f 68 32 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d  /h2>..<h3><a id=
0820: 22 63 61 6e 76 61 73 2d 6c 69 6e 65 5f 22 3e 3c  "canvas-line_"><
0830: 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61  code><nowiki>(ca
0840: 6e 76 61 73 2d 6c 69 6e 65 21 20 5b 63 61 6e 76  nvas-line! [canv
0850: 61 73 20 63 61 6e 76 61 73 3f 5d 20 5b 78 30 20  as canvas?] [x0 
0860: 72 65 61 6c 3f 5d 20 5b 79 30 20 72 65 61 6c 3f  real?] [y0 real?
0870: 5d 20 5b 78 31 20 72 65 61 6c 3f 5d 20 5b 79 31  ] [x1 real?] [y1
0880: 20 72 65 61 6c 3f 5d 29 20 e2 86 92 20 76 6f 69   real?]) → voi
0890: 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64  d?</nowiki></cod
08a0: 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 44 72 61  e></a></h3>..Dra
08b0: 77 73 20 61 20 6c 69 6e 65 20 6f 6e 20 74 68 65  ws a line on the
08c0: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a   given canvas...
08d0: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61  <h3><a id="canva
08e0: 73 2d 72 65 63 74 61 6e 67 6c 65 5f 22 3e 3c 63  s-rectangle_"><c
08f0: 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e  ode><nowiki>(can
0900: 76 61 73 2d 72 65 63 74 61 6e 67 6c 65 21 20 5b  vas-rectangle! [
0910: 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20  canvas canvas?] 
0920: 5b 78 30 20 72 65 61 6c 3f 5d 20 5b 78 31 20 72  [x0 real?] [x1 r
0930: 65 61 6c 3f 5d 20 5b 79 30 20 72 65 61 6c 3f 5d  eal?] [y0 real?]
0940: 20 5b 79 31 20 72 65 61 6c 3f 5d 29 20 e2 86 92   [y1 real?]) →
0950: 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c   void?</nowiki><
0960: 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a  /code></a></h3>.
0970: 0a 44 72 61 77 73 20 61 20 68 6f 6c 6c 6f 77 20  .Draws a hollow 
0980: 72 65 63 74 61 6e 67 6c 65 20 6f 6e 20 74 68 65  rectangle on the
0990: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a   given canvas...
09a0: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61  <h3><a id="canva
09b0: 73 2d 61 72 63 5f 22 3e 3c 63 6f 64 65 3e 3c 6e  s-arc_"><code><n
09c0: 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 61 72  owiki>(canvas-ar
09d0: 63 21 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61  c! [canvas canva
09e0: 73 3f 5d 20 5b 78 20 72 65 61 6c 3f 5d 20 5b 79  s?] [x real?] [y
09f0: 20 72 65 61 6c 3f 5d 20 5b 77 69 64 74 68 20 72   real?] [width r
0a00: 65 61 6c 3f 5d 20 5b 68 65 69 67 68 74 20 72 65  eal?] [height re
0a10: 61 6c 3f 5d 20 5b 61 6c 70 68 61 30 20 72 65 61  al?] [alpha0 rea
0a20: 6c 3f 5d 20 5b 61 6c 70 68 61 31 20 72 65 61 6c  l?] [alpha1 real
0a30: 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e  ?]) → void?</n
0a40: 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61  owiki></code></a
0a50: 3e 3c 2f 68 33 3e 0a 0a 44 72 61 77 73 20 61 20  ></h3>..Draws a 
0a60: 68 6f 6c 6c 6f 77 20 65 6c 6c 69 70 73 69 73 20  hollow ellipsis 
0a70: 73 65 67 6d 65 6e 74 20 6f 6e 20 74 68 65 20 67  segment on the g
0a80: 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a 3c 68  iven canvas...<h
0a90: 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d  3><a id="canvas-
0aa0: 6c 69 6e 65 2d 73 74 79 6c 65 22 3e 3c 63 6f 64  line-style"><cod
0ab0: 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61  e><nowiki>(canva
0ac0: 73 2d 6c 69 6e 65 2d 73 74 79 6c 65 20 5b 63 61  s-line-style [ca
0ad0: 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20 e2  nvas canvas?]) â
0ae0: 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77 69  †’ symbol?</nowi
0af0: 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f  ki></code></a></
0b00: 68 33 3e 0a 0a 52 65 74 72 69 65 76 65 73 20 74  h3>..Retrieves t
0b10: 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20  he current line 
0b20: 73 74 79 6c 65 20 6f 66 20 74 68 65 20 67 69 76  style of the giv
0b30: 65 6e 20 63 61 6e 76 61 73 2e 20 50 6f 73 73 69  en canvas. Possi
0b40: 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 0a 0a  ble values are..
0b50: 20 20 2a 20 20 3c 63 6f 64 65 3e 27 63 6f 6e 74    *  <code>'cont
0b60: 69 6e 75 6f 75 73 3c 2f 63 6f 64 65 3e 0a 20 20  inuous</code>.  
0b70: 2a 20 20 3c 63 6f 64 65 3e 27 64 61 73 68 65 64  *  <code>'dashed
0b80: 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f  </code>.  *  <co
0b90: 64 65 3e 27 64 6f 74 74 65 64 3c 2f 63 6f 64 65  de>'dotted</code
0ba0: 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 64 61  >.  *  <code>'da
0bb0: 73 68 2d 64 6f 74 74 65 64 3c 2f 63 6f 64 65 3e  sh-dotted</code>
0bc0: 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 64 61 73  .  *  <code>'das
0bd0: 68 2d 64 6f 74 2d 64 6f 74 74 65 64 3c 2f 63 6f  h-dot-dotted</co
0be0: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27  de>.  *  <code>'
0bf0: 63 75 73 74 6f 6d 3c 2f 63 6f 64 65 3e 0a 0a 3c  custom</code>..<
0c00: 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73  h3><a id="canvas
0c10: 2d 6c 69 6e 65 2d 73 74 79 6c 65 2d 73 65 74 5f  -line-style-set_
0c20: 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 69 6b  "><code>..<nowik
0c30: 69 3e 28 63 61 6e 76 61 73 2d 6c 69 6e 65 2d 73  i>(canvas-line-s
0c40: 74 79 6c 65 2d 73 65 74 21 20 5b 63 61 6e 76 61  tyle-set! [canva
0c50: 73 20 63 61 6e 76 61 73 3f 5d 20 5b 6c 69 6e 65  s canvas?] [line
0c60: 2d 73 74 79 6c 65 20 28 6f 72 2f 63 20 73 79 6d  -style (or/c sym
0c70: 62 6f 6c 3f 20 6c 69 73 74 3f 29 5d 29 20 e2 86  bol? list?)]) â†
0c80: 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77 69 6b  ’ symbol?</nowik
0c90: 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b 69 3e  i><br>..<nowiki>
0ca0: 28 73 65 74 21 20 28 63 61 6e 76 61 73 2d 6c 69  (set! (canvas-li
0cb0: 6e 65 2d 73 74 79 6c 65 20 5b 63 61 6e 76 61 73  ne-style [canvas
0cc0: 20 63 61 6e 76 61 73 3f 5d 29 20 5b 6c 69 6e 65   canvas?]) [line
0cd0: 2d 73 74 79 6c 65 20 28 6f 72 2f 63 20 73 79 6d  -style (or/c sym
0ce0: 62 6f 6c 3f 20 6c 69 73 74 3f 29 5d 29 20 e2 86  bol? list?)]) â†
0cf0: 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77 69 6b  ’ symbol?</nowik
0d00: 69 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f  i>.</code></a></
0d10: 68 33 3e 0a 0a 53 65 74 73 20 74 68 65 20 63 75  h3>..Sets the cu
0d20: 72 72 65 6e 74 20 6c 69 6e 65 20 73 74 79 6c 65  rrent line style
0d30: 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20 63 61   of the given ca
0d40: 6e 76 61 73 20 61 6e 64 20 72 65 74 75 72 6e 73  nvas and returns
0d50: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 76 61   the previous va
0d60: 6c 75 65 2e 0a 0a 49 6e 20 61 64 64 69 74 69 6f  lue...In additio
0d70: 6e 20 74 6f 20 74 68 65 20 70 6f 73 73 69 62 6c  n to the possibl
0d80: 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 73 20  e return values 
0d90: 6f 66 20 3c 63 6f 64 65 3e 5b 23 63 61 6e 76 61  of <code>[#canva
0da0: 73 2d 6c 69 6e 65 2d 73 74 79 6c 65 7c 63 61 6e  s-line-style|can
0db0: 76 61 73 2d 6c 69 6e 65 2d 73 74 79 6c 65 5d 3c  vas-line-style]<
0dc0: 2f 63 6f 64 65 3e 0a 61 20 63 75 73 74 6f 6d 20  /code>.a custom 
0dd0: 3c 63 6f 64 65 3e 6c 69 6e 65 2d 73 74 79 6c 65  <code>line-style
0de0: 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 66  </code> can be f
0df0: 75 6c 6c 79 20 73 70 65 63 69 66 69 65 64 20 75  ully specified u
0e00: 73 69 6e 67 20 74 68 65 20 66 6f 72 6d 0a 3c 63  sing the form.<c
0e10: 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 6c 69 73  ode><nowiki>(lis
0e20: 74 20 27 63 75 73 74 6f 6d 20 5b 6c 65 6e 20 69  t 'custom [len i
0e30: 6e 74 65 67 65 72 3f 5d 20 2e 2e 2e 29 3c 2f 6e  nteger?] ...)</n
0e40: 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 2e 0a 0a  owiki></code>...
0e50: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61  <h3><a id="canva
0e60: 73 2d 6c 69 6e 65 2d 77 69 64 74 68 22 3e 3c 63  s-line-width"><c
0e70: 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e  ode><nowiki>(can
0e80: 76 61 73 2d 6c 69 6e 65 2d 77 69 64 74 68 20 5b  vas-line-width [
0e90: 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29  canvas canvas?])
0ea0: 20 e2 86 92 20 69 6e 74 65 67 65 72 3f 3c 2f 6e   → integer?</n
0eb0: 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61  owiki></code></a
0ec0: 3e 3c 2f 68 33 3e 0a 0a 52 65 74 72 69 65 76 65  ></h3>..Retrieve
0ed0: 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69  s the current li
0ee0: 6e 65 20 77 69 64 74 68 20 6f 66 20 74 68 65 20  ne width of the 
0ef0: 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a 3c  given canvas...<
0f00: 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73  h3><a id="canvas
0f10: 2d 6c 69 6e 65 2d 77 69 64 74 68 2d 73 65 74 5f  -line-width-set_
0f20: 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 69 6b  "><code>..<nowik
0f30: 69 3e 28 63 61 6e 76 61 73 2d 6c 69 6e 65 2d 77  i>(canvas-line-w
0f40: 69 64 74 68 2d 73 65 74 21 20 5b 63 61 6e 76 61  idth-set! [canva
0f50: 73 20 63 61 6e 76 61 73 3f 5d 20 5b 6c 69 6e 65  s canvas?] [line
0f60: 2d 77 69 64 74 68 20 69 6e 74 65 67 65 72 3f 5d  -width integer?]
0f70: 29 20 e2 86 92 20 69 6e 74 65 67 65 72 3f 3c 2f  ) → integer?</
0f80: 6e 6f 77 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f  nowiki><br>..<no
0f90: 77 69 6b 69 3e 28 73 65 74 21 20 28 63 61 6e 76  wiki>(set! (canv
0fa0: 61 73 2d 6c 69 6e 65 2d 77 69 64 74 68 20 5b 63  as-line-width [c
0fb0: 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20  anvas canvas?]) 
0fc0: 5b 6c 69 6e 65 2d 77 69 64 74 68 20 69 6e 74 65  [line-width inte
0fd0: 67 65 72 3f 5d 29 20 e2 86 92 20 69 6e 74 65 67  ger?]) → integ
0fe0: 65 72 3f 3c 2f 6e 6f 77 69 6b 69 3e 0a 3c 2f 63  er?</nowiki>.</c
0ff0: 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 53  ode></a></h3>..S
1000: 65 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 20  ets the current 
1010: 6c 69 6e 65 20 77 69 64 74 68 20 6f 66 20 74 68  line width of th
1020: 65 20 67 69 76 65 6e 20 63 61 6e 76 61 73 20 61  e given canvas a
1030: 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 70  nd returns the p
1040: 72 65 76 69 6f 75 73 20 76 61 6c 75 65 2e 0a 0a  revious value...
1050: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61  <h3><a id="canva
1060: 73 2d 6c 69 6e 65 2d 6a 6f 69 6e 22 3e 3c 63 6f  s-line-join"><co
1070: 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76  de><nowiki>(canv
1080: 61 73 2d 6c 69 6e 65 2d 6a 6f 69 6e 20 5b 63 61  as-line-join [ca
1090: 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20 e2  nvas canvas?]) â
10a0: 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77 69  †’ symbol?</nowi
10b0: 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f  ki></code></a></
10c0: 68 33 3e 0a 0a 52 65 74 72 69 65 76 65 73 20 74  h3>..Retrieves t
10d0: 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20  he current line 
10e0: 6a 6f 69 6e 20 73 74 79 6c 65 20 6f 66 20 74 68  join style of th
10f0: 65 20 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 20  e given canvas. 
1100: 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20  Possible values 
1110: 61 72 65 0a 0a 20 20 2a 20 20 3c 63 6f 64 65 3e  are..  *  <code>
1120: 27 6d 69 74 65 72 3c 2f 63 6f 64 65 3e 0a 20 20  'miter</code>.  
1130: 2a 20 20 3c 63 6f 64 65 3e 27 62 65 76 65 6c 3c  *  <code>'bevel<
1140: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64  /code>.  *  <cod
1150: 65 3e 27 72 6f 75 6e 64 3c 2f 63 6f 64 65 3e 0a  e>'round</code>.
1160: 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76  .<h3><a id="canv
1170: 61 73 2d 6c 69 6e 65 2d 6a 6f 69 6e 2d 73 65 74  as-line-join-set
1180: 5f 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 69  _"><code>..<nowi
1190: 6b 69 3e 28 63 61 6e 76 61 73 2d 6c 69 6e 65 2d  ki>(canvas-line-
11a0: 6a 6f 69 6e 2d 73 65 74 21 20 5b 63 61 6e 76 61  join-set! [canva
11b0: 73 20 63 61 6e 76 61 73 3f 5d 20 5b 6c 69 6e 65  s canvas?] [line
11c0: 2d 6a 6f 69 6e 20 73 79 6d 62 6f 6c 3f 5d 29 20  -join symbol?]) 
11d0: e2 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77  → symbol?</now
11e0: 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b  iki><br>..<nowik
11f0: 69 3e 28 73 65 74 21 20 28 63 61 6e 76 61 73 2d  i>(set! (canvas-
1200: 6c 69 6e 65 2d 6a 6f 69 6e 20 5b 63 61 6e 76 61  line-join [canva
1210: 73 20 63 61 6e 76 61 73 3f 5d 29 20 5b 6c 69 6e  s canvas?]) [lin
1220: 65 2d 6a 6f 69 6e 20 73 79 6d 62 6f 6c 3f 5d 29  e-join symbol?])
1230: 20 e2 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f   → symbol?</no
1240: 77 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61  wiki>.</code></a
1250: 3e 3c 2f 68 33 3e 0a 0a 53 65 74 73 20 74 68 65  ></h3>..Sets the
1260: 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 6a 6f   current line jo
1270: 69 6e 20 73 74 79 6c 65 20 6f 66 20 74 68 65 20  in style of the 
1280: 67 69 76 65 6e 20 63 61 6e 76 61 73 20 61 6e 64  given canvas and
1290: 20 72 65 74 75 72 6e 73 20 74 68 65 20 70 72 65   returns the pre
12a0: 76 69 6f 75 73 0a 76 61 6c 75 65 2e 0a 0a 3c 68  vious.value...<h
12b0: 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d  3><a id="canvas-
12c0: 6c 69 6e 65 2d 63 61 70 22 3e 3c 63 6f 64 65 3e  line-cap"><code>
12d0: 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d  <nowiki>(canvas-
12e0: 6c 69 6e 65 2d 63 61 70 20 5b 63 61 6e 76 61 73  line-cap [canvas
12f0: 20 63 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20 73   canvas?]) → s
1300: 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c  ymbol?</nowiki><
1310: 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a  /code></a></h3>.
1320: 0a 52 65 74 72 69 65 76 65 73 20 74 68 65 20 63  .Retrieves the c
1330: 75 72 72 65 6e 74 20 6c 69 6e 65 20 63 61 70 20  urrent line cap 
1340: 73 74 79 6c 65 20 6f 66 20 74 68 65 20 67 69 76  style of the giv
1350: 65 6e 20 63 61 6e 76 61 73 2e 0a 0a 20 20 2a 20  en canvas...  * 
1360: 20 3c 63 6f 64 65 3e 27 66 6c 61 74 3c 2f 63 6f   <code>'flat</co
1370: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27  de>.  *  <code>'
1380: 73 71 75 61 72 65 3c 2f 63 6f 64 65 3e 0a 20 20  square</code>.  
1390: 2a 20 20 3c 63 6f 64 65 3e 27 72 6f 75 6e 64 3c  *  <code>'round<
13a0: 2f 63 6f 64 65 3e 0a 0a 3c 68 33 3e 3c 61 20 69  /code>..<h3><a i
13b0: 64 3d 22 63 61 6e 76 61 73 2d 6c 69 6e 65 2d 63  d="canvas-line-c
13c0: 61 70 2d 73 65 74 5f 22 3e 3c 63 6f 64 65 3e 0a  ap-set_"><code>.
13d0: 09 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73  .<nowiki>(canvas
13e0: 2d 6c 69 6e 65 2d 63 61 70 2d 73 65 74 21 20 5b  -line-cap-set! [
13f0: 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20  canvas canvas?] 
1400: 5b 6c 69 6e 65 2d 63 61 70 20 73 79 6d 62 6f 6c  [line-cap symbol
1410: 3f 5d 29 20 e2 86 92 20 73 79 6d 62 6f 6c 3f 3c  ?]) → symbol?<
1420: 2f 6e 6f 77 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e  /nowiki><br>..<n
1430: 6f 77 69 6b 69 3e 28 73 65 74 21 20 28 63 61 6e  owiki>(set! (can
1440: 76 61 73 2d 6c 69 6e 65 2d 63 61 70 20 5b 63 61  vas-line-cap [ca
1450: 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20 5b  nvas canvas?]) [
1460: 6c 69 6e 65 2d 63 61 70 20 73 79 6d 62 6f 6c 3f  line-cap symbol?
1470: 5d 29 20 e2 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f  ]) → symbol?</
1480: 6e 6f 77 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e 3c  nowiki>.</code><
1490: 2f 61 3e 3c 2f 68 33 3e 0a 0a 53 65 74 73 20 74  /a></h3>..Sets t
14a0: 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20  he current line 
14b0: 63 61 70 20 73 74 79 6c 65 20 6f 66 20 74 68 65  cap style of the
14c0: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 20 61 6e   given canvas an
14d0: 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 70 72  d returns the pr
14e0: 65 76 69 6f 75 73 0a 76 61 6c 75 65 2e 0a 0a 3c  evious.value...<
14f0: 68 32 3e 46 69 6c 6c 65 64 20 41 72 65 61 73 3c  h2>Filled Areas<
1500: 2f 68 32 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d  /h2>..<h3><a id=
1510: 22 63 61 6e 76 61 73 2d 62 6f 78 5f 22 3e 3c 63  "canvas-box_"><c
1520: 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e  ode><nowiki>(can
1530: 76 61 73 2d 62 6f 78 21 20 5b 63 61 6e 76 61 73  vas-box! [canvas
1540: 20 63 61 6e 76 61 73 3f 5d 20 5b 78 30 20 72 65   canvas?] [x0 re
1550: 61 6c 3f 5d 20 5b 78 31 20 72 65 61 6c 3f 5d 20  al?] [x1 real?] 
1560: 5b 79 30 20 72 65 61 6c 3f 5d 20 5b 79 31 20 72  [y0 real?] [y1 r
1570: 65 61 6c 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f  eal?]) → void?
1580: 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e  </nowiki></code>
1590: 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 44 72 61 77 73  </a></h3>..Draws
15a0: 20 61 20 66 69 6c 6c 65 64 20 72 65 63 74 61 6e   a filled rectan
15b0: 67 6c 65 20 6f 6e 20 74 68 65 20 67 69 76 65 6e  gle on the given
15c0: 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 33 3e 3c 61   canvas...<h3><a
15d0: 20 69 64 3d 22 63 61 6e 76 61 73 2d 73 65 63 74   id="canvas-sect
15e0: 6f 72 5f 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69  or_"><code><nowi
15f0: 6b 69 3e 28 63 61 6e 76 61 73 2d 73 65 63 74 6f  ki>(canvas-secto
1600: 72 21 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61  r! [canvas canva
1610: 73 3f 5d 20 5b 78 20 72 65 61 6c 3f 5d 20 5b 79  s?] [x real?] [y
1620: 20 72 65 61 6c 3f 5d 20 5b 77 69 64 74 68 20 72   real?] [width r
1630: 65 61 6c 3f 5d 20 5b 68 65 69 67 68 74 20 72 65  eal?] [height re
1640: 61 6c 3f 5d 20 5b 61 6c 70 68 61 30 20 72 65 61  al?] [alpha0 rea
1650: 6c 3f 5d 20 5b 61 6c 70 68 61 31 20 72 65 61 6c  l?] [alpha1 real
1660: 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e  ?]) → void?</n
1670: 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61  owiki></code></a
1680: 3e 3c 2f 68 33 3e 0a 0a 44 72 61 77 73 20 61 20  ></h3>..Draws a 
1690: 66 69 6c 6c 65 64 20 65 6c 6c 69 70 73 69 73 20  filled ellipsis 
16a0: 73 65 63 74 6f 72 20 6f 6e 20 74 68 65 20 67 69  sector on the gi
16b0: 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 33  ven canvas...<h3
16c0: 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 63  ><a id="canvas-c
16d0: 68 6f 72 64 5f 22 3e 3c 63 6f 64 65 3e 3c 6e 6f  hord_"><code><no
16e0: 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 63 68 6f  wiki>(canvas-cho
16f0: 72 64 21 20 5b 63 61 6e 76 61 73 20 63 61 6e 76  rd! [canvas canv
1700: 61 73 3f 5d 20 5b 78 20 72 65 61 6c 3f 5d 20 5b  as?] [x real?] [
1710: 79 20 72 65 61 6c 3f 5d 20 5b 77 69 64 74 68 20  y real?] [width 
1720: 72 65 61 6c 3f 5d 20 5b 68 65 69 67 68 74 20 72  real?] [height r
1730: 65 61 6c 3f 5d 20 5b 61 6c 70 68 61 30 20 72 65  eal?] [alpha0 re
1740: 61 6c 3f 5d 20 5b 61 6c 70 68 61 31 20 72 65 61  al?] [alpha1 rea
1750: 6c 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f  l?]) → void?</
1760: 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f  nowiki></code></
1770: 61 3e 3c 2f 68 33 3e 0a 0a 44 72 61 77 73 20 61  a></h3>..Draws a
1780: 20 66 69 6c 6c 65 64 20 65 6c 6c 69 70 73 69 73   filled ellipsis
1790: 20 61 72 63 20 6f 6e 20 74 68 65 20 67 69 76 65   arc on the give
17a0: 6e 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 33 3e 3c  n canvas...<h3><
17b0: 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 62 61 63  a id="canvas-bac
17c0: 6b 67 72 6f 75 6e 64 2d 6f 70 61 63 69 74 79 22  kground-opacity"
17d0: 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28  ><code><nowiki>(
17e0: 63 61 6e 76 61 73 2d 62 61 63 6b 67 72 6f 75 6e  canvas-backgroun
17f0: 64 2d 6f 70 61 63 69 74 79 20 5b 63 61 6e 76 61  d-opacity [canva
1800: 73 20 63 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20  s canvas?]) → 
1810: 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77 69 6b 69 3e  symbol?</nowiki>
1820: 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e  </code></a></h3>
1830: 0a 0a 52 65 74 72 69 65 76 65 73 20 74 68 65 20  ..Retrieves the 
1840: 63 75 72 72 65 6e 74 20 62 61 63 6b 67 72 6f 75  current backgrou
1850: 6e 64 20 6f 70 61 63 69 74 79 20 6f 66 20 74 68  nd opacity of th
1860: 65 20 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 20  e given canvas. 
1870: 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 0a  Possible values.
1880: 61 72 65 0a 0a 20 20 2a 20 20 3c 63 6f 64 65 3e  are..  *  <code>
1890: 27 74 72 61 6e 73 70 61 72 65 6e 74 3c 2f 63 6f  'transparent</co
18a0: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27  de>.  *  <code>'
18b0: 6f 70 61 71 75 65 3c 2f 63 6f 64 65 3e 0a 0a 3c  opaque</code>..<
18c0: 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73  h3><a id="canvas
18d0: 2d 62 61 63 6b 67 72 6f 75 6e 64 2d 6f 70 61 63  -background-opac
18e0: 69 74 79 2d 73 65 74 5f 22 3e 3c 63 6f 64 65 3e  ity-set_"><code>
18f0: 0a 09 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61  ..<nowiki>(canva
1900: 73 2d 62 61 63 6b 67 72 6f 75 6e 64 2d 6f 70 61  s-background-opa
1910: 63 69 74 79 2d 73 65 74 21 20 5b 63 61 6e 76 61  city-set! [canva
1920: 73 20 63 61 6e 76 61 73 3f 5d 20 5b 62 61 63 6b  s canvas?] [back
1930: 67 72 6f 75 6e 64 2d 6f 70 61 63 69 74 79 20 73  ground-opacity s
1940: 79 6d 62 6f 6c 3f 5d 29 20 e2 86 92 20 73 79 6d  ymbol?]) → sym
1950: 62 6f 6c 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 62 72  bol?</nowiki><br
1960: 3e 0a 09 3c 6e 6f 77 69 6b 69 3e 28 73 65 74 21  >..<nowiki>(set!
1970: 20 28 63 61 6e 76 61 73 2d 62 61 63 6b 67 72 6f   (canvas-backgro
1980: 75 6e 64 2d 6f 70 61 63 69 74 79 2d 73 65 74 21  und-opacity-set!
1990: 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f   [canvas canvas?
19a0: 5d 29 20 5b 62 61 63 6b 67 72 6f 75 6e 64 2d 6f  ]) [background-o
19b0: 70 61 63 69 74 79 20 73 79 6d 62 6f 6c 3f 5d 29  pacity symbol?])
19c0: 20 e2 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f   → symbol?</no
19d0: 77 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61  wiki>.</code></a
19e0: 3e 3c 2f 68 33 3e 0a 0a 53 65 74 73 20 74 68 65  ></h3>..Sets the
19f0: 20 63 75 72 72 65 6e 74 20 62 61 63 6b 67 72 6f   current backgro
1a00: 75 6e 64 20 6f 70 61 63 69 74 79 20 6f 66 20 74  und opacity of t
1a10: 68 65 20 67 69 76 65 6e 20 63 61 6e 76 61 73 20  he given canvas 
1a20: 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20  and returns the 
1a30: 70 72 65 76 69 6f 75 73 0a 76 61 6c 75 65 2e 0a  previous.value..
1a40: 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76  .<h3><a id="canv
1a50: 61 73 2d 66 69 6c 6c 2d 6d 6f 64 65 22 3e 3c 63  as-fill-mode"><c
1a60: 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e  ode><nowiki>(can
1a70: 76 61 73 2d 66 69 6c 6c 2d 6d 6f 64 65 20 5b 63  vas-fill-mode [c
1a80: 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20  anvas canvas?]) 
1a90: e2 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77  → symbol?</now
1aa0: 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c  iki></code></a><
1ab0: 2f 68 33 3e 0a 0a 52 65 74 72 69 65 76 65 73 20  /h3>..Retrieves 
1ac0: 74 68 65 20 63 75 72 72 65 6e 74 20 70 6f 6c 79  the current poly
1ad0: 67 6f 6e 20 66 69 6c 6c 20 6d 6f 64 65 20 6f 66  gon fill mode of
1ae0: 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e 76 61   the given canva
1af0: 73 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75  s. Possible valu
1b00: 65 73 20 61 72 65 0a 0a 20 20 2a 20 20 3c 63 6f  es are..  *  <co
1b10: 64 65 3e 27 65 76 65 6e 2d 6f 64 64 3c 2f 63 6f  de>'even-odd</co
1b20: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27  de>.  *  <code>'
1b30: 77 69 6e 64 69 6e 67 3c 2f 63 6f 64 65 3e 0a 0a  winding</code>..
1b40: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61  <h3><a id="canva
1b50: 73 2d 66 69 6c 6c 2d 6d 6f 64 65 2d 73 65 74 5f  s-fill-mode-set_
1b60: 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 69 6b  "><code>..<nowik
1b70: 69 3e 28 63 61 6e 76 61 73 2d 66 69 6c 6c 2d 6d  i>(canvas-fill-m
1b80: 6f 64 65 2d 73 65 74 21 20 5b 63 61 6e 76 61 73  ode-set! [canvas
1b90: 20 63 61 6e 76 61 73 3f 5d 20 5b 66 69 6c 6c 2d   canvas?] [fill-
1ba0: 6d 6f 64 65 20 73 79 6d 62 6f 6c 3f 5d 29 20 e2  mode symbol?]) â
1bb0: 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77 69  †’ symbol?</nowi
1bc0: 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77 69 6b 69  ki><br>..<nowiki
1bd0: 3e 28 73 65 74 21 20 28 63 61 6e 76 61 73 2d 66  >(set! (canvas-f
1be0: 69 6c 6c 2d 6d 6f 64 65 20 5b 63 61 6e 76 61 73  ill-mode [canvas
1bf0: 20 63 61 6e 76 61 73 3f 5d 29 20 5b 66 69 6c 6c   canvas?]) [fill
1c00: 2d 6d 6f 64 65 20 73 79 6d 62 6f 6c 3f 5d 29 20  -mode symbol?]) 
1c10: e2 86 92 20 73 79 6d 62 6f 6c 3f 3c 2f 6e 6f 77  → symbol?</now
1c20: 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61 3e  iki>.</code></a>
1c30: 3c 2f 68 33 3e 0a 0a 53 65 74 73 20 74 68 65 20  </h3>..Sets the 
1c40: 63 75 72 72 65 6e 74 20 70 6f 6c 79 67 6f 6e 20  current polygon 
1c50: 66 69 6c 6c 20 6d 6f 64 65 20 6f 66 20 74 68 65  fill mode of the
1c60: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 20 61 6e   given canvas an
1c70: 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 70 72  d returns the pr
1c80: 65 76 69 6f 75 73 0a 76 61 6c 75 65 2e 0a 0a 3c  evious.value...<
1c90: 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73  h3><a id="canvas
1ca0: 2d 69 6e 74 65 72 69 6f 72 2d 73 74 79 6c 65 22  -interior-style"
1cb0: 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28  ><code><nowiki>(
1cc0: 63 61 6e 76 61 73 2d 69 6e 74 65 72 69 6f 72 2d  canvas-interior-
1cd0: 73 74 79 6c 65 20 5b 63 61 6e 76 61 73 20 63 61  style [canvas ca
1ce0: 6e 76 61 73 3f 5d 29 20 e2 86 92 20 28 6f 72 2f  nvas?]) → (or/
1cf0: 63 20 73 79 6d 62 6f 6c 3f 20 6c 69 73 74 3f 29  c symbol? list?)
1d00: 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e  </nowiki></code>
1d10: 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 65 74 72 69  </a></h3>..Retri
1d20: 65 76 65 73 20 74 68 65 20 63 75 72 72 65 6e 74  eves the current
1d30: 20 69 6e 74 65 72 69 6f 72 20 73 74 79 6c 65 20   interior style 
1d40: 6f 66 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e  of the given can
1d50: 76 61 73 2e 20 50 6f 73 73 69 62 6c 65 20 76 61  vas. Possible va
1d60: 6c 75 65 73 20 61 72 65 0a 0a 20 20 2a 20 20 3c  lues are..  *  <
1d70: 63 6f 64 65 3e 27 73 6f 6c 69 64 3c 2f 63 6f 64  code>'solid</cod
1d80: 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 28  e>.  *  <code>'(
1d90: 68 61 74 63 68 20 68 6f 72 69 7a 6f 6e 74 61 6c  hatch horizontal
1da0: 29 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63  )</code>.  *  <c
1db0: 6f 64 65 3e 27 28 68 61 74 63 68 20 76 65 72 74  ode>'(hatch vert
1dc0: 69 63 61 6c 29 3c 2f 63 6f 64 65 3e 0a 20 20 2a  ical)</code>.  *
1dd0: 20 20 3c 63 6f 64 65 3e 27 28 68 61 74 63 68 20    <code>'(hatch 
1de0: 66 6f 72 77 61 72 64 2d 64 69 61 67 6f 6e 61 6c  forward-diagonal
1df0: 29 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63  )</code>.  *  <c
1e00: 6f 64 65 3e 27 28 68 61 74 63 68 20 62 61 63 6b  ode>'(hatch back
1e10: 77 61 72 64 2d 64 69 61 67 6f 6e 61 6c 29 3c 2f  ward-diagonal)</
1e20: 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65  code>.  *  <code
1e30: 3e 27 28 68 61 74 63 68 20 63 72 6f 73 73 29 3c  >'(hatch cross)<
1e40: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64  /code>.  *  <cod
1e50: 65 3e 27 28 68 61 74 63 68 20 64 69 61 67 6f 6e  e>'(hatch diagon
1e60: 61 6c 2d 63 72 6f 73 73 29 3c 2f 63 6f 64 65 3e  al-cross)</code>
1e70: 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 3c 6e 6f 77  .  *  <code><now
1e80: 69 6b 69 3e 28 6c 69 73 74 20 27 73 74 69 70 70  iki>(list 'stipp
1e90: 6c 65 20 5b 77 69 64 74 68 20 69 6e 74 65 67 65  le [width intege
1ea0: 72 3f 5d 20 5b 68 65 69 67 68 74 20 69 6e 74 65  r?] [height inte
1eb0: 67 65 72 3f 5d 20 5b 64 61 74 61 20 62 6c 6f 62  ger?] [data blob
1ec0: 3f 5d 29 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f  ?])</nowiki></co
1ed0: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 3c  de>.  *  <code><
1ee0: 6e 6f 77 69 6b 69 3e 28 6c 69 73 74 20 27 70 61  nowiki>(list 'pa
1ef0: 74 74 65 72 6e 2f 72 67 62 20 5b 77 69 64 74 68  ttern/rgb [width
1f00: 20 69 6e 74 65 67 65 72 3f 5d 20 5b 68 65 69 67   integer?] [heig
1f10: 68 74 20 69 6e 74 65 67 65 72 3f 5d 20 5b 64 61  ht integer?] [da
1f20: 74 61 20 62 6c 6f 62 3f 5d 29 3c 2f 6e 6f 77 69  ta blob?])</nowi
1f30: 6b 69 3e 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20  ki></code>.  *  
1f40: 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 6c  <code><nowiki>(l
1f50: 69 73 74 20 27 70 61 74 74 65 72 6e 2f 72 67 62  ist 'pattern/rgb
1f60: 61 20 5b 77 69 64 74 68 20 69 6e 74 65 67 65 72  a [width integer
1f70: 3f 5d 20 5b 68 65 69 67 68 74 20 69 6e 74 65 67  ?] [height integ
1f80: 65 72 3f 5d 20 5b 64 61 74 61 20 62 6c 6f 62 3f  er?] [data blob?
1f90: 5d 29 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64  ])</nowiki></cod
1fa0: 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 23 66  e>.  *  <code>#f
1fb0: 3c 2f 63 6f 64 65 3e 0a 0a 3c 68 33 3e 3c 61 20  </code>..<h3><a 
1fc0: 69 64 3d 22 63 61 6e 76 61 73 2d 69 6e 74 65 72  id="canvas-inter
1fd0: 69 6f 72 2d 73 74 79 6c 65 2d 73 65 74 5f 22 3e  ior-style-set_">
1fe0: 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 69 6b 69 3e  <code>..<nowiki>
1ff0: 28 63 61 6e 76 61 73 2d 69 6e 74 65 72 69 6f 72  (canvas-interior
2000: 2d 73 74 79 6c 65 2d 73 65 74 21 20 5b 63 61 6e  -style-set! [can
2010: 76 61 73 20 63 61 6e 76 61 73 3f 5d 20 5b 69 6e  vas canvas?] [in
2020: 74 65 72 69 6f 72 2d 73 74 79 6c 65 20 28 6f 72  terior-style (or
2030: 2f 63 20 73 79 6d 62 6f 6c 3f 20 6c 69 73 74 3f  /c symbol? list?
2040: 29 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e  )]) → void?</n
2050: 6f 77 69 6b 69 3e 3c 62 72 3e 0a 09 3c 6e 6f 77  owiki><br>..<now
2060: 69 6b 69 3e 28 73 65 74 21 20 28 63 61 6e 76 61  iki>(set! (canva
2070: 73 2d 69 6e 74 65 72 69 6f 72 2d 73 74 79 6c 65  s-interior-style
2080: 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f   [canvas canvas?
2090: 5d 29 20 5b 69 6e 74 65 72 69 6f 72 2d 73 74 79  ]) [interior-sty
20a0: 6c 65 20 28 6f 72 2f 63 20 73 79 6d 62 6f 6c 3f  le (or/c symbol?
20b0: 20 6c 69 73 74 3f 29 5d 29 20 e2 86 92 20 76 6f   list?)]) → vo
20c0: 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 0a 3c 2f 63  id?</nowiki>.</c
20d0: 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 53  ode></a></h3>..S
20e0: 65 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 20  ets the current 
20f0: 69 6e 74 65 72 69 6f 72 20 73 74 79 6c 65 20 6f  interior style o
2100: 66 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e 76  f the given canv
2110: 61 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74  as and returns t
2120: 68 65 20 70 72 65 76 69 6f 75 73 0a 76 61 6c 75  he previous.valu
2130: 65 2e 0a 0a 3c 68 32 3e 54 65 78 74 3c 2f 68 32  e...<h2>Text</h2
2140: 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61  >..<h3><a id="ca
2150: 6e 76 61 73 2d 74 65 78 74 5f 22 3e 3c 63 6f 64  nvas-text_"><cod
2160: 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61  e><nowiki>(canva
2170: 73 2d 74 65 78 74 21 20 5b 63 61 6e 76 61 73 20  s-text! [canvas 
2180: 63 61 6e 76 61 73 3f 5d 20 5b 78 20 72 65 61 6c  canvas?] [x real
2190: 3f 5d 20 5b 79 20 72 65 61 6c 3f 5d 20 5b 74 65  ?] [y real?] [te
21a0: 78 74 20 73 74 72 69 6e 67 3f 5d 29 20 e2 86 92  xt string?]) →
21b0: 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c   void?</nowiki><
21c0: 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a  /code></a></h3>.
21d0: 0a 44 72 61 77 73 20 61 20 73 74 72 69 6e 67 20  .Draws a string 
21e0: 6f 66 20 74 65 78 74 20 6f 6e 20 74 68 65 20 67  of text on the g
21f0: 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a 3c 68  iven canvas...<h
2200: 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d  3><a id="canvas-
2210: 66 6f 6e 74 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77  font"><code><now
2220: 69 6b 69 3e 28 63 61 6e 76 61 73 2d 66 6f 6e 74  iki>(canvas-font
2230: 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f   [canvas canvas?
2240: 5d 29 20 e2 86 92 20 73 74 72 69 6e 67 3f 3c 2f  ]) → string?</
2250: 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f  nowiki></code></
2260: 61 3e 3c 2f 68 33 3e 0a 0a 52 65 74 72 69 65 76  a></h3>..Retriev
2270: 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 66  es the current f
2280: 6f 6e 74 20 6f 66 20 74 68 65 20 67 69 76 65 6e  ont of the given
2290: 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 33 3e 3c 61   canvas...<h3><a
22a0: 20 69 64 3d 22 63 61 6e 76 61 73 2d 66 6f 6e 74   id="canvas-font
22b0: 2d 73 65 74 5f 22 3e 3c 63 6f 64 65 3e 0a 09 3c  -set_"><code>..<
22c0: 6e 6f 77 69 6b 69 3e 28 63 61 6e 76 61 73 2d 66  nowiki>(canvas-f
22d0: 6f 6e 74 2d 73 65 74 21 20 5b 63 61 6e 76 61 73  ont-set! [canvas
22e0: 20 63 61 6e 76 61 73 3f 5d 20 5b 66 6f 6e 74 20   canvas?] [font 
22f0: 73 74 72 69 6e 67 3f 5d 29 20 e2 86 92 20 76 6f  string?]) → vo
2300: 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 62 72 3e  id?</nowiki><br>
2310: 0a 09 3c 6e 6f 77 69 6b 69 3e 28 73 65 74 21 20  ..<nowiki>(set! 
2320: 28 63 61 6e 76 61 73 2d 66 6f 6e 74 20 5b 63 61  (canvas-font [ca
2330: 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 29 20 5b  nvas canvas?]) [
2340: 66 6f 6e 74 20 73 74 72 69 6e 67 3f 5d 29 20 e2  font string?]) â
2350: 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69  †’ void?</nowiki
2360: 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68  >.</code></a></h
2370: 33 3e 0a 0a 53 65 74 73 20 74 68 65 20 63 75 72  3>..Sets the cur
2380: 72 65 6e 74 20 66 6f 6e 74 20 6f 66 20 74 68 65  rent font of the
2390: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 20 61 6e   given canvas an
23a0: 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 70 72  d returns the pr
23b0: 65 76 69 6f 75 73 20 76 61 6c 75 65 2e 0a 0a 3c  evious value...<
23c0: 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73  h3><a id="canvas
23d0: 2d 74 65 78 74 2d 61 6c 69 67 6e 6d 65 6e 74 22  -text-alignment"
23e0: 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28  ><code><nowiki>(
23f0: 63 61 6e 76 61 73 2d 74 65 78 74 2d 61 6c 69 67  canvas-text-alig
2400: 6e 6d 65 6e 74 20 5b 63 61 6e 76 61 73 20 63 61  nment [canvas ca
2410: 6e 76 61 73 3f 5d 29 20 e2 86 92 20 73 79 6d 62  nvas?]) → symb
2420: 6f 6c 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f  ol?</nowiki></co
2430: 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 65  de></a></h3>..Re
2440: 74 72 69 65 76 65 73 20 74 68 65 20 63 75 72 72  trieves the curr
2450: 65 6e 74 20 74 65 78 74 20 61 6c 69 67 6e 6d 65  ent text alignme
2460: 6e 74 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20  nt of the given 
2470: 63 61 6e 76 61 73 2e 20 50 6f 73 73 69 62 6c 65  canvas. Possible
2480: 20 76 61 6c 75 65 73 20 61 72 65 0a 0a 20 20 2a   values are..  *
2490: 20 20 3c 63 6f 64 65 3e 27 6e 6f 72 74 68 3c 2f    <code>'north</
24a0: 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65  code>.  *  <code
24b0: 3e 27 73 6f 75 74 68 3c 2f 63 6f 64 65 3e 0a 20  >'south</code>. 
24c0: 20 2a 20 20 3c 63 6f 64 65 3e 27 65 61 73 74 3c   *  <code>'east<
24d0: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64  /code>.  *  <cod
24e0: 65 3e 27 77 65 73 74 3c 2f 63 6f 64 65 3e 0a 20  e>'west</code>. 
24f0: 20 2a 20 20 3c 63 6f 64 65 3e 27 6e 6f 72 74 68   *  <code>'north
2500: 2d 65 61 73 74 3c 2f 63 6f 64 65 3e 0a 20 20 2a  -east</code>.  *
2510: 20 20 3c 63 6f 64 65 3e 27 6e 6f 72 74 68 2d 77    <code>'north-w
2520: 65 73 74 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20  est</code>.  *  
2530: 3c 63 6f 64 65 3e 27 73 6f 75 74 68 2d 65 61 73  <code>'south-eas
2540: 74 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63  t</code>.  *  <c
2550: 6f 64 65 3e 27 73 6f 75 74 68 2d 77 65 73 74 3c  ode>'south-west<
2560: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64  /code>.  *  <cod
2570: 65 3e 27 63 65 6e 74 65 72 3c 2f 63 6f 64 65 3e  e>'center</code>
2580: 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 62 61 73  .  *  <code>'bas
2590: 65 2d 6c 65 66 74 3c 2f 63 6f 64 65 3e 0a 20 20  e-left</code>.  
25a0: 2a 20 20 3c 63 6f 64 65 3e 27 62 61 73 65 2d 63  *  <code>'base-c
25b0: 65 6e 74 65 72 3c 2f 63 6f 64 65 3e 0a 20 20 2a  enter</code>.  *
25c0: 20 20 3c 63 6f 64 65 3e 27 62 61 73 65 2d 72 69    <code>'base-ri
25d0: 67 68 74 3c 2f 63 6f 64 65 3e 0a 0a 3c 68 33 3e  ght</code>..<h3>
25e0: 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 74 65  <a id="canvas-te
25f0: 78 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 73 65 74  xt-alignment-set
2600: 5f 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77 69  _"><code>..<nowi
2610: 6b 69 3e 28 63 61 6e 76 61 73 2d 74 65 78 74 2d  ki>(canvas-text-
2620: 61 6c 69 67 6e 6d 65 6e 74 2d 73 65 74 21 20 5b  alignment-set! [
2630: 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20  canvas canvas?] 
2640: 5b 74 65 78 74 2d 61 6c 69 67 6e 6d 65 6e 74 20  [text-alignment 
2650: 73 79 6d 62 6f 6c 3f 5d 29 20 e2 86 92 20 76 6f  symbol?]) → vo
2660: 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 62 72 3e  id?</nowiki><br>
2670: 0a 09 3c 6e 6f 77 69 6b 69 3e 28 73 65 74 21 20  ..<nowiki>(set! 
2680: 28 63 61 6e 76 61 73 2d 74 65 78 74 2d 61 6c 69  (canvas-text-ali
2690: 67 6e 6d 65 6e 74 20 5b 63 61 6e 76 61 73 20 63  gnment [canvas c
26a0: 61 6e 76 61 73 3f 5d 29 20 5b 74 65 78 74 2d 61  anvas?]) [text-a
26b0: 6c 69 67 6e 6d 65 6e 74 20 73 79 6d 62 6f 6c 3f  lignment symbol?
26c0: 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c 2f 6e 6f  ]) → void?</no
26d0: 77 69 6b 69 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 61  wiki>.</code></a
26e0: 3e 3c 2f 68 33 3e 0a 0a 53 65 74 73 20 74 68 65  ></h3>..Sets the
26f0: 20 63 75 72 72 65 6e 74 20 74 65 78 74 20 61 6c   current text al
2700: 69 67 6e 6d 65 6e 74 20 6f 66 20 74 68 65 20 67  ignment of the g
2710: 69 76 65 6e 20 63 61 6e 76 61 73 20 61 6e 64 20  iven canvas and 
2720: 72 65 74 75 72 6e 73 20 74 68 65 20 70 72 65 76  returns the prev
2730: 69 6f 75 73 0a 76 61 6c 75 65 2e 0a 0a 3c 68 33  ious.value...<h3
2740: 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 74  ><a id="canvas-t
2750: 65 78 74 2d 6f 72 69 65 6e 74 61 74 69 6f 6e 22  ext-orientation"
2760: 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28  ><code><nowiki>(
2770: 63 61 6e 76 61 73 2d 74 65 78 74 2d 6f 72 69 65  canvas-text-orie
2780: 6e 74 61 74 69 6f 6e 20 5b 63 61 6e 76 61 73 20  ntation [canvas 
2790: 63 61 6e 76 61 73 3f 5d 29 20 e2 86 92 20 72 65  canvas?]) → re
27a0: 61 6c 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f  al?</nowiki></co
27b0: 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 52 65  de></a></h3>..Re
27c0: 74 72 69 65 76 65 73 20 74 68 65 20 63 75 72 72  trieves the curr
27d0: 65 6e 74 20 74 65 78 74 20 6f 72 69 65 6e 74 61  ent text orienta
27e0: 74 69 6f 6e 20 6f 66 20 74 68 65 20 67 69 76 65  tion of the give
27f0: 6e 20 63 61 6e 76 61 73 2e 0a 0a 3c 68 33 3e 3c  n canvas...<h3><
2800: 61 20 69 64 3d 22 63 61 6e 76 61 73 2d 74 65 78  a id="canvas-tex
2810: 74 2d 6f 72 69 65 6e 74 61 74 69 6f 6e 2d 73 65  t-orientation-se
2820: 74 5f 22 3e 3c 63 6f 64 65 3e 0a 09 3c 6e 6f 77  t_"><code>..<now
2830: 69 6b 69 3e 28 63 61 6e 76 61 73 2d 74 65 78 74  iki>(canvas-text
2840: 2d 6f 72 69 65 6e 74 61 74 69 6f 6e 2d 73 65 74  -orientation-set
2850: 21 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 73  ! [canvas canvas
2860: 3f 5d 20 5b 6f 72 69 65 6e 74 61 74 69 6f 6e 20  ?] [orientation 
2870: 72 65 61 6c 3f 5d 29 20 e2 86 92 20 76 6f 69 64  real?]) → void
2880: 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 62 72 3e 0a 09  ?</nowiki><br>..
2890: 3c 6e 6f 77 69 6b 69 3e 28 73 65 74 21 20 28 63  <nowiki>(set! (c
28a0: 61 6e 76 61 73 2d 74 65 78 74 2d 6f 72 69 65 6e  anvas-text-orien
28b0: 74 61 74 69 6f 6e 20 5b 63 61 6e 76 61 73 20 63  tation [canvas c
28c0: 61 6e 76 61 73 3f 5d 29 20 5b 6f 72 69 65 6e 74  anvas?]) [orient
28d0: 61 74 69 6f 6e 20 72 65 61 6c 3f 5d 29 20 e2 86  ation real?]) â†
28e0: 92 20 76 6f 69 64 3f 3c 2f 6e 6f 77 69 6b 69 3e  ’ void?</nowiki>
28f0: 0a 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33  .</code></a></h3
2900: 3e 0a 0a 53 65 74 73 20 74 68 65 20 63 75 72 72  >..Sets the curr
2910: 65 6e 74 20 74 65 78 74 20 6f 72 69 65 6e 74 61  ent text orienta
2920: 74 69 6f 6e 20 6f 66 20 74 68 65 20 67 69 76 65  tion of the give
2930: 6e 20 63 61 6e 76 61 73 20 61 6e 64 20 72 65 74  n canvas and ret
2940: 75 72 6e 73 20 74 68 65 20 70 72 65 76 69 6f 75  urns the previou
2950: 73 0a 76 61 6c 75 65 2e 0a 0a 3c 68 33 3e 3c 61  s.value...<h3><a
2960: 20 69 64 3d 22 63 61 6e 76 61 73 2d 66 6f 6e 74   id="canvas-font
2970: 2d 64 69 6d 65 6e 73 69 6f 6e 73 22 3e 3c 63 6f  -dimensions"><co
2980: 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76  de><nowiki>(canv
2990: 61 73 2d 66 6f 6e 74 2d 64 69 6d 65 6e 73 69 6f  as-font-dimensio
29a0: 6e 73 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61  ns [canvas canva
29b0: 73 3f 5d 29 20 e2 86 92 20 28 76 61 6c 75 65 73  s?]) → (values
29c0: 20 69 6e 74 65 67 65 72 3f 20 69 6e 74 65 67 65   integer? intege
29d0: 72 3f 20 69 6e 74 65 67 65 72 3f 20 69 6e 74 65  r? integer? inte
29e0: 67 65 72 3f 29 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f  ger?)</nowiki></
29f0: 63 6f 64 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a  code></a></h3>..
2a00: 52 65 74 75 72 6e 73 20 74 68 65 20 6d 61 78 69  Returns the maxi
2a10: 6d 75 6d 20 77 69 64 74 68 2c 20 68 65 69 67 68  mum width, heigh
2a20: 74 2c 20 61 73 63 65 6e 74 20 61 6e 64 20 64 65  t, ascent and de
2a30: 73 63 65 6e 74 20 6f 66 20 74 68 65 20 63 75 72  scent of the cur
2a40: 72 65 6e 74 20 66 6f 6e 74 0a 6f 66 20 74 68 65  rent font.of the
2a50: 20 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 0a   given canvas...
2a60: 3c 68 33 3e 3c 61 20 69 64 3d 22 63 61 6e 76 61  <h3><a id="canva
2a70: 73 2d 74 65 78 74 2d 73 69 7a 65 22 3e 3c 63 6f  s-text-size"><co
2a80: 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28 63 61 6e 76  de><nowiki>(canv
2a90: 61 73 2d 74 65 78 74 2d 73 69 7a 65 20 5b 63 61  as-text-size [ca
2aa0: 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d 20 5b 74  nvas canvas?] [t
2ab0: 65 78 74 20 73 74 72 69 6e 67 3f 5d 29 20 e2 86  ext string?]) â†
2ac0: 92 20 28 76 61 6c 75 65 73 20 69 6e 74 65 67 65  ’ (values intege
2ad0: 72 3f 20 69 6e 74 65 67 65 72 3f 29 3c 2f 6e 6f  r? integer?)</no
2ae0: 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e  wiki></code></a>
2af0: 3c 2f 68 33 3e 0a 0a 43 6f 6d 70 75 74 65 73 20  </h3>..Computes 
2b00: 74 68 65 20 77 69 64 74 68 20 61 6e 64 20 68 65  the width and he
2b10: 69 67 68 74 20 6f 66 20 74 68 65 20 67 69 76 65  ight of the give
2b20: 6e 20 74 65 78 74 20 77 68 65 6e 20 64 72 61 77  n text when draw
2b30: 6e 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 63  n on the given c
2b40: 61 6e 76 61 73 2e 0a 0a 3c 68 33 3e 3c 61 20 69  anvas...<h3><a i
2b50: 64 3d 22 63 61 6e 76 61 73 2d 74 65 78 74 2d 62  d="canvas-text-b
2b60: 6f 78 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b  ox"><code><nowik
2b70: 69 3e 28 63 61 6e 76 61 73 2d 74 65 78 74 2d 62  i>(canvas-text-b
2b80: 6f 78 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61  ox [canvas canva
2b90: 73 3f 5d 20 5b 78 20 69 6e 74 65 67 65 72 3f 5d  s?] [x integer?]
2ba0: 20 5b 79 20 69 6e 74 65 67 65 72 3f 5d 20 5b 74   [y integer?] [t
2bb0: 65 78 74 20 73 74 72 69 6e 67 3f 5d 29 20 e2 86  ext string?]) â†
2bc0: 92 20 28 76 61 6c 75 65 73 20 69 6e 74 65 67 65  ’ (values intege
2bd0: 72 3f 20 69 6e 74 65 67 65 72 3f 20 69 6e 74 65  r? integer? inte
2be0: 67 65 72 3f 20 69 6e 74 65 67 65 72 3f 29 3c 2f  ger? integer?)</
2bf0: 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f  nowiki></code></
2c00: 61 3e 3c 2f 68 33 3e 0a 0a 43 6f 6d 70 75 74 65  a></h3>..Compute
2c10: 73 20 74 68 65 20 62 6f 75 6e 64 69 6e 67 20 62  s the bounding b
2c20: 6f 78 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20  ox of the given 
2c30: 74 65 78 74 20 77 68 65 6e 20 64 72 61 77 6e 20  text when drawn 
2c40: 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e  on the given can
2c50: 76 61 73 2e 0a 52 65 74 75 72 6e 73 20 74 68 65  vas..Returns the
2c60: 20 6d 69 6e 69 6d 75 6d 20 61 6e 64 20 6d 61 78   minimum and max
2c70: 69 6d 75 6d 20 78 20 61 6e 64 20 79 20 63 6f 6f  imum x and y coo
2c80: 72 64 69 6e 61 74 65 73 2e 0a 0a 3c 68 32 3e 56  rdinates...<h2>V
2c90: 65 72 74 69 63 65 73 3c 2f 68 32 3e 0a 0a 3c 68  ertices</h2>..<h
2ca0: 33 3e 3c 61 20 69 64 3d 22 63 61 6c 6c 2d 77 69  3><a id="call-wi
2cb0: 74 68 2d 63 61 6e 76 61 73 2d 69 6e 2d 6d 6f 64  th-canvas-in-mod
2cc0: 65 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69  e"><code><nowiki
2cd0: 3e 28 63 61 6c 6c 2d 77 69 74 68 2d 63 61 6e 76  >(call-with-canv
2ce0: 61 73 2d 69 6e 2d 6d 6f 64 65 20 5b 63 61 6e 76  as-in-mode [canv
2cf0: 61 73 20 63 61 6e 76 61 73 3f 5d 20 5b 6d 6f 64  as canvas?] [mod
2d00: 65 20 73 79 6d 62 6f 6c 3f 5d 20 5b 70 72 6f 63  e symbol?] [proc
2d10: 20 28 2d 3e 20 63 61 6e 76 61 73 3f 20 61 6e 79   (-> canvas? any
2d20: 29 5d 29 20 e2 86 92 20 61 6e 79 3c 2f 6e 6f 77  )]) → any</now
2d30: 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c 2f 61 3e 3c  iki></code></a><
2d40: 2f 68 33 3e 0a 0a 43 61 6c 6c 73 20 3c 63 6f 64  /h3>..Calls <cod
2d50: 65 3e 70 72 6f 63 3c 2f 63 6f 64 65 3e 20 77 69  e>proc</code> wi
2d60: 74 68 20 74 68 65 20 67 69 76 65 6e 20 63 61 6e  th the given can
2d70: 76 61 73 20 61 6e 64 20 72 65 61 64 79 20 74 6f  vas and ready to
2d80: 20 72 65 63 65 69 76 65 20 76 65 72 74 65 78 20   receive vertex 
2d90: 64 61 74 61 0a 69 6e 20 74 68 65 20 67 69 76 65  data.in the give
2da0: 6e 20 6d 6f 64 65 2e 20 52 65 74 75 72 6e 73 20  n mode. Returns 
2db0: 77 68 61 74 65 76 65 72 20 3c 63 6f 64 65 3e 70  whatever <code>p
2dc0: 72 6f 63 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72  roc</code> retur
2dd0: 6e 73 2e 0a 0a 50 6f 73 73 69 62 6c 65 20 6d 6f  ns...Possible mo
2de0: 64 65 73 20 61 72 65 0a 0a 20 20 2a 20 20 3c 63  des are..  *  <c
2df0: 6f 64 65 3e 27 6f 70 65 6e 2d 6c 69 6e 65 73 3c  ode>'open-lines<
2e00: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64  /code>.  *  <cod
2e10: 65 3e 27 63 6c 6f 73 65 64 2d 6c 69 6e 65 73 3c  e>'closed-lines<
2e20: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64  /code>.  *  <cod
2e30: 65 3e 27 66 69 6c 6c 3c 2f 63 6f 64 65 3e 0a 20  e>'fill</code>. 
2e40: 20 2a 20 20 3c 63 6f 64 65 3e 27 63 6c 69 70 3c   *  <code>'clip<
2e50: 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64  /code>.  *  <cod
2e60: 65 3e 27 62 65 7a 69 65 72 3c 2f 63 6f 64 65 3e  e>'bezier</code>
2e70: 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 72 65 67  .  *  <code>'reg
2e80: 69 6f 6e 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20  ion</code>.  *  
2e90: 3c 63 6f 64 65 3e 27 70 61 74 68 3c 2f 63 6f 64  <code>'path</cod
2ea0: 65 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64 3d 22 63  e>..<h3><a id="c
2eb0: 61 6e 76 61 73 2d 70 61 74 68 2d 73 65 74 21 22  anvas-path-set!"
2ec0: 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e 28  ><code><nowiki>(
2ed0: 63 61 6e 76 61 73 2d 70 61 74 68 2d 73 65 74 21  canvas-path-set!
2ee0: 20 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f   [canvas canvas?
2ef0: 5d 20 5b 70 61 74 68 2d 61 63 74 69 6f 6e 20 73  ] [path-action s
2f00: 79 6d 62 6f 6c 3f 5d 29 20 e2 86 92 20 76 6f 69  ymbol?]) → voi
2f10: 64 3f 3c 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64  d?</nowiki></cod
2f20: 65 3e 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 43 6f 6e  e></a></h3>..Con
2f30: 66 69 67 75 72 65 73 20 74 68 65 20 61 63 74 69  figures the acti
2f40: 6f 6e 20 62 65 74 77 65 65 6e 20 73 65 71 75 65  on between seque
2f50: 6e 63 65 73 20 6f 66 20 76 65 72 74 65 78 20 64  nces of vertex d
2f60: 61 74 61 20 73 65 6e 74 20 74 6f 20 74 68 65 20  ata sent to the 
2f70: 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a 50 6f  given canvas..Po
2f80: 73 73 69 62 6c 65 20 61 63 74 69 6f 6e 73 20 61  ssible actions a
2f90: 72 65 0a 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27  re..  *  <code>'
2fa0: 6e 65 77 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20  new</code>.  *  
2fb0: 3c 63 6f 64 65 3e 27 6d 6f 76 65 2d 74 6f 3c 2f  <code>'move-to</
2fc0: 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65  code>.  *  <code
2fd0: 3e 27 6c 69 6e 65 2d 74 6f 3c 2f 63 6f 64 65 3e  >'line-to</code>
2fe0: 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27 61 72 63  .  *  <code>'arc
2ff0: 3c 2f 63 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f  </code>.  *  <co
3000: 64 65 3e 27 63 75 72 76 65 2d 74 6f 3c 2f 63 6f  de>'curve-to</co
3010: 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e 27  de>.  *  <code>'
3020: 63 6c 6f 73 65 3c 2f 63 6f 64 65 3e 0a 20 20 2a  close</code>.  *
3030: 20 20 3c 63 6f 64 65 3e 27 66 69 6c 6c 3c 2f 63    <code>'fill</c
3040: 6f 64 65 3e 0a 20 20 2a 20 20 3c 63 6f 64 65 3e  ode>.  *  <code>
3050: 27 73 74 72 6f 6b 65 3c 2f 63 6f 64 65 3e 0a 20  'stroke</code>. 
3060: 20 2a 20 20 3c 63 6f 64 65 3e 27 66 69 6c 6c 2b   *  <code>'fill+
3070: 73 74 72 6f 6b 65 3c 2f 63 6f 64 65 3e 0a 20 20  stroke</code>.  
3080: 2a 20 20 3c 63 6f 64 65 3e 27 63 6c 69 70 3c 2f  *  <code>'clip</
3090: 63 6f 64 65 3e 0a 0a 3c 68 33 3e 3c 61 20 69 64  code>..<h3><a id
30a0: 3d 22 63 61 6e 76 61 73 2d 76 65 72 74 65 78 21  ="canvas-vertex!
30b0: 22 3e 3c 63 6f 64 65 3e 3c 6e 6f 77 69 6b 69 3e  "><code><nowiki>
30c0: 28 63 61 6e 76 61 73 2d 76 65 72 74 65 78 21 20  (canvas-vertex! 
30d0: 5b 63 61 6e 76 61 73 20 63 61 6e 76 61 73 3f 5d  [canvas canvas?]
30e0: 20 5b 78 20 72 65 61 6c 3f 5d 20 5b 79 20 72 65   [x real?] [y re
30f0: 61 6c 3f 5d 29 20 e2 86 92 20 76 6f 69 64 3f 3c  al?]) → void?<
3100: 2f 6e 6f 77 69 6b 69 3e 3c 2f 63 6f 64 65 3e 3c  /nowiki></code><
3110: 2f 61 3e 3c 2f 68 33 3e 0a 0a 53 65 6e 64 73 20  /a></h3>..Sends 
3120: 61 20 76 65 72 74 65 78 20 74 6f 20 74 68 65 20  a vertex to the 
3130: 67 69 76 65 6e 20 63 61 6e 76 61 73 2e 0a        given canvas..