Home » Archimedes archive » Archimedes World » AW-1995-02-Disc1.adf » Disk1Feb95 » !AWFeb95/Goodies/DrawBasic/!DrawBasic/Resources/Figures

!AWFeb95/Goodies/DrawBasic/!DrawBasic/Resources/Figures

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1995-02-Disc1.adf » Disk1Feb95
Filename: !AWFeb95/Goodies/DrawBasic/!DrawBasic/Resources/Figures
Read OK:
File size: 2B39 bytes
Load address: 0000
Exec address: 0000
File contents
    1REM > DrawBasic:Resources.Figures
    2
    3REM =======================================================
    4REM
    5REM copyright Joe Taylor June 1994
    6REM
    7REM N.B. For ERROR THROWBACK to work The first line above
    8REM      MUST have the correct pathname of this file.
    9REM      If you move the location of the file remember to
   10REM      alter this pathname.
   11REM
   12REM =======================================================
   13
   14REM **********************
   15REM
   16REM 3. EXTENDING DRAWBASIC
   17REM
   18REM **********************
   19
   20REM ==========
   21REM 3.1 Lines
   22REM ==========
   23
   24DEF PROC@HLine(x,y,length)
   25 REM ---------------------------------
   26 REM H line starting at (x,y)
   27 REM of length 'length'
   28 REM
   29 REM 6 words
   30 REM ---------------------------------
   31 PROCMove(x,y)
   32 PROCDraw(x+length,y)
   33 ENDPROC
   34
   35DEF PROCHLine(x,y,length)
   36 REM ---------------------------------
   37 REM H line starting at (x,y)
   38 REM of length 'length'
   39 REM
   40 REM 18 words
   41 REM ---------------------------------
   42 LOCAL _path%
   43 PROCPathBegin(_path%)
   44 PROC@HLine(x,y,length)
   45 PROCPathEnd
   46ENDPROC
   47
   48DEF FNHLine(x,y,length)
   49 REM ---------------------------------
   50 REM H line staring at (x,y)
   51 REM of length length
   52 REM
   53 REM 18 words
   54 REM ---------------------------------
   55 LOCAL _path%
   56 PROCPathBegin(_path%)
   57 PROC@HLine(x,y,length)
   58 PROCPathEnd
   59=_path%
   60
   61DEF PROC@VLine(x,y,length)
   62 REM ---------------------------------
   63 REM H line staring at (x,y)
   64 REM of length length
   65 REM
   66 REM 6 words
   67 REM ---------------------------------
   68 PROCMove(x,y)
   69 PROCDraw(x,y+length)
   70 ENDPROC
   71
   72DEF PROCVLine(x,y,length)
   73 REM ---------------------------------
   74 REM H line staring at (x,y)
   75 REM of length length
   76 REM
   77 REM 18 words
   78 REM ---------------------------------
   79 LOCAL _path%
   80 PROCPathBegin(_path%)
   81 PROC@VLine(x,y,length)
   82 PROCPathEnd
   83ENDPROC
   84
   85DEF FNVLine(x,y,length)
   86 REM ---------------------------------
   87 REM H line staring at (x,y)
   88 REM of length length
   89 REM
   90 REM 18 words
   91 REM ---------------------------------
   92 LOCAL _path%
   93 PROCPathBegin(_path%)
   94 PROC@VLine(x,y,length)
   95 PROCPathEnd
   96=_path%
   97
   98DEF PROC@Line(x,y,X,Y)
   99 REM ---------------------------------
  100 REM Line starting at (x,y) to (X,Y)
  101 REM of length length
  102 REM
  103 REM 6 words
  104 REM ---------------------------------
  105 PROCMove(x,y)
  106 PROCDraw(X,Y)
  107 ENDPROC
  108
  109DEF PROCLine(x,y,X,Y)
  110 REM ---------------------------------
  111 REM Line starting at (x,y) to (X,Y)
  112 REM of length length
  113 REM
  114 REM 18 words
  115 REM ---------------------------------
  116 LOCAL _path%
  117 PROCPathBegin(_path%)
  118 PROC@Line(x,y,X,Y)
  119 PROCPathEnd
  120ENDPROC
  121
  122DEF FNLine(x,y,X,Y)
  123 REM ---------------------------------
  124 REM Line starting at (x,y) to (X,Y)
  125 REM of length length
  126 REM
  127 REM 18 words
  128 REM ---------------------------------
  129 LOCAL _path%
  130 PROCPathBegin(_path%)
  131 PROC@Line(x,y,X,Y)
  132 PROCPathEnd
  133=_path%
  134
  135REM =============
  136REM 3.2 Polygons
  137REM =============
  138
  139DEF PROC@Rectangle(x,y,width,height)
  140 REM ------------------------
  141 REM Rectangle x,y,width,height
  142 REM
  143 REM 13 words
  144 REM ------------------------
  145 PROCMove(x,y)
  146 PROCDraw(x+width,y)
  147 PROCDraw(x+width,y+height)
  148 PROCDraw(x,y+height)
  149 PROCCloseWithLine
  150 ENDPROC
  151
  152DEF PROCRectangle(x,y,width,height)
  153 REM ------------------------
  154 REM Rectangle x,y,width,height
  155 REM
  156 REM 25 words
  157 REM ------------------------
  158 LOCAL _path%
  159 PROCPathBegin(_path%)
  160 PROC@Rectangle(x,y,width,height)
  161 PROCPathEnd
  162ENDPROC
  163
  164DEF FNRectangle(x,y,width,height)
  165 REM ------------------------
  166 REM Rectangle x,y,width,height
  167 REM
  168 REM 25 words
  169 REM ------------------------
  170 LOCAL _path%
  171 PROCPathBegin(_path%)
  172 PROC@Rectangle(x,y,width,height)
  173 PROCPathEnd
  174=_path%
  175
  176DEF PROC@Square(x,y,width)
  177 REM ------------------------
  178 REM Square x,y,width
  179 REM
  180 REM 13 words
  181 REM ------------------------
  182 PROC@Rectangle(x,y,width,width)
  183 ENDPROC
  184
  185DEF PROCSquare(x,y,width)
  186 REM ------------------------
  187 REM Square x,y,width
  188 REM
  189 REM 25 words
  190 REM ------------------------
  191 LOCAL _path%
  192 PROCPathBegin(_path%)
  193 PROC@Square(x,y,width)
  194 PROCPathEnd
  195ENDPROC
  196
  197DEF FNSquare(x,y,width)
  198 REM ------------------------
  199 REM Square x,y,width
  200 REM
  201 REM 25 words
  202 REM ------------------------
  203 LOCAL _path%
  204 PROCPathBegin(_path%)
  205 PROC@Square(x,y,width)
  206 PROCPathEnd
  207=_path%
  208
  209DEF PROC@Triangle(A,a,B,b,C,c)
  210 REM ----------------------------
  211 REM Triangle  (A,a) (B,b) (C,c)
  212 REM
  213 REM 10 words
  214 REM ----------------------------
  215 PROCMove(A,a)
  216 PROCDraw(B,b)
  217 PROCDraw(C,c)
  218 PROCCloseWithLine
  219 ENDPROC
  220
  221DEF PROCTriangle(A,a,B,b,C,c)
  222 REM ----------------------------
  223 REM Triangle  (A,a) (B,b) (C,c)
  224 REM
  225 REM 22 words
  226 REM ----------------------------
  227 LOCAL _path%
  228 PROCPathBegin(_path%)
  229 PROC@Triangle(A,a,B,b,C,c)
  230 PROCPathEnd
  231ENDPROC
  232
  233DEF FNTriangle(A,a,B,b,C,c)
  234 REM ----------------------------
  235 REM Triangle  (A,a) (B,b) (C,c)
  236 REM
  237 REM 22 words
  238 REM ----------------------------
  239 LOCAL _path%
  240 PROCPathBegin(_path%)
  241 PROC@Triangle(A,a,B,b,C,c)
  242 PROCPathEnd
  243=_path%
  244
  245DEF PROC@Diamond(x,y,width,height)
  246 REM -------------------------------
  247 REM
  248 REM Diamond centre x,y,width,height
  249 REM
  250 REM -------------------------------
  251 PROCMove(x+width,y)
  252 PROCDraw(x,y+height)
  253 PROCDraw(x-width,y)
  254 PROCDraw(x,y-height)
  255 PROCCloseWithLine
  256 ENDPROC
  257
  258DEF PROCDiamond(x,y,width,height)
  259 LOCAL _path%
  260 PROCPathBegin(_path%)
  261 PROC@Diamond(x,y,width,height)
  262 PROCPathEnd
  263ENDPROC
  264
  265DEF FNDiamond(x,y,width,height)
  266 LOCAL _path%
  267 PROCPathBegin(_path%)
  268 PROC@Diamond(x,y,width,height)
  269 PROCPathEnd
  270=_path%
  271
  272DEF PROC@RegularPolygon(x,y,radius,n%)
  273 REM ------------------------------
  274 REM Regular polygon centre (x,y)
  275 REM
  276 REM Number of sides=n
  277 REM
  278 REM 3*n+1 words
  279 REM ------------------------------
  280 LOCAL _i%
  281 FOR _i%=1 TO n%
  282  X=x+radius*COS(2*PI*_i%/n%)
  283  Y=y+radius*SIN(2*PI*_i%/n%)
  284  IF _i%=1 THEN PROCMove(X,Y) ELSE   PROCDraw(X,Y)
  285  NEXT
  286  PROCCloseWithLine
  287 ENDPROC
  288
  289DEF PROCRegularPolygon(x,y,radius,n%)
  290 REM ------------------------------
  291 REM Regular polygon centre (x,y)
  292 REM
  293 REM Number of sides=n
  294 REM
  295 REM 3*n+13 words
  296 REM ------------------------------
  297 LOCAL _path%
  298 PROCPathBegin(_path%)
  299 PROC@RegularPolygon(x,y,radius,n%)
  300 PROCPathEnd
  301ENDPROC
  302
  303DEF FNRegularPolygon(x,y,radius,n%)
  304 REM ------------------------------
  305 REM Regular polygon centre (x,y)
  306 REM
  307 REM Number of sides=n
  308 REM
  309 REM 3*n+13 words
  310 REM ------------------------------
  311 LOCAL _path%
  312 PROCPathBegin(_path%)
  313 PROC@RegularPolygon(x,y,radius,n%)
  314 PROCPathEnd
  315=_path%
  316
  317REM ============
  318REM 3.3 Circles
  319REM ============
  320
  321DEF PROC@Circle(x,y,radius)
  322 REM ------------------------
  323 REM Circle centre (x,y)
  324 REM
  325 REM 32 words
  326 REM ------------------------
  327 LOCAL _a : _a=radius*4*(SQR2-1)/3
  328 PROCMove(x,y+radius)
  329 PROCBezier(x+_a,y+radius,x+radius,y+_a,x+radius,y)
  330 PROCBezier(x+radius,y-_a,x+_a,y-radius,x,y-radius)
  331 PROCBezier(x-_a,y-radius,x-radius,y-_a,x-radius,y)
  332 PROCBezier(x-radius,y+_a,x-_a,y+radius,x,y+radius)
  333 PROCCloseWithLine
  334 ENDPROC
  335
  336DEF PROCCircle(x,y,radius)
  337 REM ------------------------
  338 REM Circle centre (x,y)
  339 REM
  340 REM 44 words
  341 REM ------------------------
  342 LOCAL _path%
  343 PROCPathBegin(_path%)
  344 PROC@Circle(x,y,radius)
  345 PROCPathEnd
  346ENDPROC
  347
  348DEF FNCircle(x,y,radius)
  349 REM ------------------------
  350 REM Circle centre (x,y)
  351 REM
  352 REM 44 words
  353 REM ------------------------
  354 LOCAL _path%
  355 PROCPathBegin(_path%)
  356 PROC@Circle(x,y,radius)
  357 PROCPathEnd
  358=_path%
  359
  360DEF PROC@CirclePolar(r,theta,radius)
  361PROC@Circle(r*COStheta,r*SINtheta,radius)
  362ENDPROC
  363
  364DEF PROCCirclePolar(r,theta,radius)
  365PROCCircle(r*COStheta,r*SINtheta,radius)
  366ENDPROC
  367
  368DEF FNCirclePolar(r,theta,radius)=FNCircle(r*COStheta,r*SINtheta,radius)
  369
  370DEF PROC@Arc(x,y,radius,theta,phi)
  371 REM ------------------------
  372 REM Arc of angle theta
  373 REM centre (x,y)
  374 REM
  375 REM ------------------------
  376 theta=ABStheta  
  377 LOCAL _a,_c,_x0,_x1,_x2,_x3,_y0,_y1,_y2,_y3
  378  IF theta>2*PI THEN theta-=2*PI*INT(theta/2/PI)
  379  IF theta>2*PI THEN theta-=2*PI 
  380 CASE TRUE OF
  381  WHEN theta<=PI/2   : PROCFirstArc
  382  WHEN theta<=PI     : theta=theta/2 : PROCFirstArc : PROCNextArc
  383  WHEN theta<=3*PI/2 : theta=theta/3 : PROCFirstArc : PROCNextArc : PROCNextArc 
  384  OTHERWISE
  385   theta=theta/4
  386   PROCFirstArc : PROCNextArc : PROCNextArc : PROCNextArc  
  387 ENDCASE
  388 ENDPROC
  389
  390DEF PROCFirstArc
  391 _c=1-COStheta
  392 _a=radius*4*(SQR(2*_c)-SIN(theta))/3/_c
  393 _x0=radius : _y0=0  : PROCRot(_x0,_y0,phi) 
  394 _x1=radius : _y1=_a : PROCRot(_x1,_y1,phi) 
  395 _x2=radius : _y2=-_a: PROCRot(_x2,_y2,phi)
  396 _x3=radius : _y3=0  : PROCRot(_x3,_y3,phi)
  397 PROCRot(_x2,_y2,theta)
  398 PROCRot(_x3,_y3,theta)
  399 PROCMove(x+_x0,y+_y0)
  400 PROCBezier(x+_x1,y+_y1,x+_x2,y+_y2,x+_x3,y+_y3)
  401ENDPROC
  402
  403DEF PROCNextArc
  404   PROCRot(_x0,_y0,theta)
  405   PROCRot(_x1,_y1,theta)
  406   PROCRot(_x2,_y2,theta)
  407   PROCRot(_x3,_y3,theta)
  408   PROCBezier(x+_x1,y+_y1,x+_x2,y+_y2,x+_x3,y+_y3)
  409ENDPROC 
  410
  411DEF PROCRot(RETURN x,RETURN y,theta)
  412LOCAL _X,_c,_s : _c=COStheta : _s=SINtheta
  413_X=_c*x-_s*y : y=_s*x+_c*y : x=_X
  414ENDPROC
  415
  416DEF FNArc(x,y,radius,theta,phi)
  417LOCAL _path
  418PROCPathBegin(_path)
  419PROC@Arc(x,y,radius,theta,phi)
  420PROCPathEnd
  421=_path
  422
  423DEF PROCArc(x,y,radius,theta,phi)
  424LOCAL _path
  425_path=FNArc(x,y,radius,theta,phi)
  426ENDPROC
  427
  428DEF PROC@Sector(x,y,radius,theta,phi)
  429 REM ------------------------
  430 REM Sector of angle theta
  431 REM centre (x,y)
  432 REM
  433 REM ------------------------
  434 PROC@Arc(x,y,radius,theta,phi)
  435 PROCDraw(x,y)
  436 PROCCloseWithLine
  437ENDPROC
  438
  439DEF FNSector(x,y,radius,theta,phi)
  440LOCAL _path
  441PROCPathBegin(_path)
  442PROC@Sector(x,y,radius,theta,phi)
  443PROCPathEnd
  444=_path
  445
  446DEF PROCSector(x,y,radius,theta,phi)
  447LOCAL _path
  448_path=FNSector(x,y,radius,theta,phi)
  449ENDPROC
  450
  451
  452REM =============
  453REM 3.5 Ellipses
  454REM =============
  455
  456DEF PROC@Ellipse(x,y,A,B)
  457 REM ------------------------
  458 REM Ellipse (x/A)^2+(y/B)^2=1
  459 REM
  460 REM 32 words
  461 REM ------------------------
  462 LOCAL a_ : a_=4*(SQR2-1)/3
  463 PROCMove(x,y+B)
  464 PROCBezier(x+a_*A,y+B,x+A,y+a_*B,x+A,y)
  465 PROCBezier(x+A,y-a_*B,x+a_*A,y-B,x,y-B)
  466 PROCBezier(x-a_*A,y-B,x-A,y-a_*B,x-A,y)
  467 PROCBezier(x-A,y+a_*B,x-a_*A,y+B,x,y+B)
  468 PROCCloseWithLine
  469 ENDPROC
  470
  471DEF PROCEllipse(x,y,A,B)
  472 REM ------------------------
  473 REM Ellipse (x/A)^2+(y/B)^2=1
  474 REM
  475 REM 44 words
  476 REM ------------------------
  477 LOCAL _path%
  478 PROCPathBegin(_path%)
  479 PROC@Ellipse(x,y,A,B)
  480 PROCPathEnd
  481ENDPROC
  482
  483DEF FNEllipse(x,y,A,B)
  484 REM ------------------------
  485 REM Ellipse (x/A)^2+(y/B)^2=1
  486 REM
  487 REM 44 words
  488 REM ------------------------
  489 LOCAL _path%
  490 PROCPathBegin(_path%)
  491 PROC@Ellipse(x,y,A,B)
  492 PROCPathEnd
  493=_path%
  494
  495REM ==========
  496REM 3.6 Cross
  497REM ==========
  498
  499DEF PROC@Cross(x,y,width,height)
  500 REM ------------------------
  501 REM Cross cntre x,y,width,height
  502 REM
  503 REM ------------------------
  504 PROC@HLine(x-width/2,y,width)
  505 PROC@VLine(x,y-height/2,height)
  506 ENDPROC
  507
  508DEF PROCCross(x,y,width,height)
  509 REM ------------------------
  510 REM Cross centre x,y,width,height
  511 REM
  512 REM ------------------------
  513 LOCAL _path%
  514 PROCPathBegin(_path%)
  515 PROC@Cross(x,y,width,height)
  516 PROCPathEnd
  517ENDPROC
  518
  519DEF FNCross(x,y,width,height)
  520 REM ------------------------
  521 REM Cross centre x,y,width,height
  522 REM
  523 REM ------------------------
  524 LOCAL _path%
  525 PROCPathBegin(_path%)
  526 PROC@Cross(x,y,width,height)
  527 PROCPathEnd
  528=_path%
  529
  530
#� > DrawBasic:Resources.Figures

=� =======================================================
�
$� copyright Joe Taylor June 1994
�
;� N.B. For ERROR THROWBACK to work The first line above
7�      MUST have the correct pathname of this file.
	;�      If you move the location of the file remember to

�      alter this pathname.
�
=� =======================================================


� **********************
�
� 3. EXTENDING DRAWBASIC
�
� **********************

� ==========
� 3.1 Lines
� ==========

� �@HLine(x,y,length)
( � ---------------------------------
 � H line starting at (x,y)
 � of length 'length'
 �
 � 6 words
( � ---------------------------------
 �Move(x,y)
  �Draw(x+length,y)
! �
"
#� �HLine(x,y,length)
$( � ---------------------------------
% � H line starting at (x,y)
& � of length 'length'
' �
( � 18 words
)( � ---------------------------------
*
 � _path%
+ �PathBegin(_path%)
, �@HLine(x,y,length)
-
 �PathEnd
.�
/
0� �HLine(x,y,length)
1( � ---------------------------------
2 � H line staring at (x,y)
3 � of length length
4 �
5 � 18 words
6( � ---------------------------------
7
 � _path%
8 �PathBegin(_path%)
9 �@HLine(x,y,length)
:
 �PathEnd
;=_path%
<
=� �@VLine(x,y,length)
>( � ---------------------------------
? � H line staring at (x,y)
@ � of length length
A �
B � 6 words
C( � ---------------------------------
D �Move(x,y)
E �Draw(x,y+length)
F �
G
H� �VLine(x,y,length)
I( � ---------------------------------
J � H line staring at (x,y)
K � of length length
L �
M � 18 words
N( � ---------------------------------
O
 � _path%
P �PathBegin(_path%)
Q �@VLine(x,y,length)
R
 �PathEnd
S�
T
U� �VLine(x,y,length)
V( � ---------------------------------
W � H line staring at (x,y)
X � of length length
Y �
Z � 18 words
[( � ---------------------------------
\
 � _path%
] �PathBegin(_path%)
^ �@VLine(x,y,length)
_
 �PathEnd
`=_path%
a
b� �@Line(x,y,X,Y)
c( � ---------------------------------
d& � Line starting at (x,y) to (X,Y)
e � of length length
f �
g � 6 words
h( � ---------------------------------
i �Move(x,y)
j �Draw(X,Y)
k �
l
m� �Line(x,y,X,Y)
n( � ---------------------------------
o& � Line starting at (x,y) to (X,Y)
p � of length length
q �
r � 18 words
s( � ---------------------------------
t
 � _path%
u �PathBegin(_path%)
v �@Line(x,y,X,Y)
w
 �PathEnd
x�
y
z� �Line(x,y,X,Y)
{( � ---------------------------------
|& � Line starting at (x,y) to (X,Y)
} � of length length
~ �
 � 18 words
�( � ---------------------------------
�
 � _path%
� �PathBegin(_path%)
� �@Line(x,y,X,Y)
�
 �PathEnd
�=_path%
�
�� =============
�� 3.2 Polygons
�� =============
�
�#� �@Rectangle(x,y,width,height)
� � ------------------------
�! � Rectangle x,y,width,height
� �
� � 13 words
� � ------------------------
� �Move(x,y)
� �Draw(x+width,y)
� �Draw(x+width,y+height)
� �Draw(x,y+height)
� �CloseWithLine
� �
�
�"� �Rectangle(x,y,width,height)
� � ------------------------
�! � Rectangle x,y,width,height
� �
� � 25 words
� � ------------------------
�
 � _path%
� �PathBegin(_path%)
�" �@Rectangle(x,y,width,height)
�
 �PathEnd
��
�
�"� �Rectangle(x,y,width,height)
� � ------------------------
�! � Rectangle x,y,width,height
� �
� � 25 words
� � ------------------------
�
 � _path%
� �PathBegin(_path%)
�" �@Rectangle(x,y,width,height)
�
 �PathEnd
�=_path%
�
�� �@Square(x,y,width)
� � ------------------------
� � Square x,y,width
� �
� � 13 words
� � ------------------------
�! �@Rectangle(x,y,width,width)
� �
�
�� �Square(x,y,width)
� � ------------------------
� � Square x,y,width
� �
� � 25 words
� � ------------------------
�
 � _path%
� �PathBegin(_path%)
� �@Square(x,y,width)
�
 �PathEnd
��
�
�� �Square(x,y,width)
� � ------------------------
� � Square x,y,width
� �
� � 25 words
� � ------------------------
�
 � _path%
� �PathBegin(_path%)
� �@Square(x,y,width)
�
 �PathEnd
�=_path%
�
�� �@Triangle(A,a,B,b,C,c)
�# � ----------------------------
�" � Triangle  (A,a) (B,b) (C,c)
� �
� � 10 words
�# � ----------------------------
� �Move(A,a)
� �Draw(B,b)
� �Draw(C,c)
� �CloseWithLine
� �
�
�� �Triangle(A,a,B,b,C,c)
�# � ----------------------------
�" � Triangle  (A,a) (B,b) (C,c)
� �
� � 22 words
�# � ----------------------------
�
 � _path%
� �PathBegin(_path%)
� �@Triangle(A,a,B,b,C,c)
�
 �PathEnd
��
�
�� �Triangle(A,a,B,b,C,c)
�# � ----------------------------
�" � Triangle  (A,a) (B,b) (C,c)
� �
� � 22 words
�# � ----------------------------
�
 � _path%
� �PathBegin(_path%)
� �@Triangle(A,a,B,b,C,c)
�
 �PathEnd
�=_path%
�
�!� �@Diamond(x,y,width,height)
�& � -------------------------------
� �
�& � Diamond centre x,y,width,height
� �
�& � -------------------------------
� �Move(x+width,y)
� �Draw(x,y+height)
� �Draw(x-width,y)
� �Draw(x,y-height)
� �CloseWithLine
 �

 � �Diamond(x,y,width,height)

 � _path%
 �PathBegin(_path%)
  �@Diamond(x,y,width,height)

 �PathEnd
�

	 � �Diamond(x,y,width,height)


 � _path%
 �PathBegin(_path%)
  �@Diamond(x,y,width,height)


 �PathEnd
=_path%

%� �@RegularPolygon(x,y,radius,n%)
% � ------------------------------
# � Regular polygon centre (x,y)
 �
 � Number of sides=n
 �
 � 3*n+1 words
% � ------------------------------

 � _i%
 � _i%=1 � n%
  X=x+radius*�(2*�*_i%/n%)
  Y=y+radius*�(2*�*_i%/n%)
)  � _i%=1 � �Move(X,Y) �   �Draw(X,Y)
  �
  �CloseWithLine
 �
 
!$� �RegularPolygon(x,y,radius,n%)
"% � ------------------------------
## � Regular polygon centre (x,y)
$ �
% � Number of sides=n
& �
' � 3*n+13 words
(% � ------------------------------
)
 � _path%
* �PathBegin(_path%)
+$ �@RegularPolygon(x,y,radius,n%)
,
 �PathEnd
-�
.
/$� �RegularPolygon(x,y,radius,n%)
0% � ------------------------------
1# � Regular polygon centre (x,y)
2 �
3 � Number of sides=n
4 �
5 � 3*n+13 words
6% � ------------------------------
7
 � _path%
8 �PathBegin(_path%)
9$ �@RegularPolygon(x,y,radius,n%)
:
 �PathEnd
;=_path%
<
=� ============
>� 3.3 Circles
?� ============
@
A� �@Circle(x,y,radius)
B � ------------------------
C � Circle centre (x,y)
D �
E � 32 words
F � ------------------------
G  � _a : _a=radius*4*(�2-1)/3
H �Move(x,y+radius)
I4 �Bezier(x+_a,y+radius,x+radius,y+_a,x+radius,y)
J4 �Bezier(x+radius,y-_a,x+_a,y-radius,x,y-radius)
K4 �Bezier(x-_a,y-radius,x-radius,y-_a,x-radius,y)
L4 �Bezier(x-radius,y+_a,x-_a,y+radius,x,y+radius)
M �CloseWithLine
N �
O
P� �Circle(x,y,radius)
Q � ------------------------
R � Circle centre (x,y)
S �
T � 44 words
U � ------------------------
V
 � _path%
W �PathBegin(_path%)
X �@Circle(x,y,radius)
Y
 �PathEnd
Z�
[
\� �Circle(x,y,radius)
] � ------------------------
^ � Circle centre (x,y)
_ �
` � 44 words
a � ------------------------
b
 � _path%
c �PathBegin(_path%)
d �@Circle(x,y,radius)
e
 �PathEnd
f=_path%
g
h#� �@CirclePolar(r,theta,radius)
i&�@Circle(r*�theta,r*�theta,radius)
j�
k
l"� �CirclePolar(r,theta,radius)
m%�Circle(r*�theta,r*�theta,radius)
n�
o
pD� �CirclePolar(r,theta,radius)=�Circle(r*�theta,r*�theta,radius)
q
r!� �@Arc(x,y,radius,theta,phi)
s � ------------------------
t � Arc of angle theta
u � centre (x,y)
v �
w � ------------------------
x theta=�theta  
y, � _a,_c,_x0,_x1,_x2,_x3,_y0,_y1,_y2,_y3
z+  � theta>2*� � theta-=2*�*�(theta/2/�)
{  � theta>2*� � theta-=2*� 
| Ȏ � �
}   � theta<=�/2   : �FirstArc
~;  � theta<=�     : theta=theta/2 : �FirstArc : �NextArc
G  � theta<=3*�/2 : theta=theta/3 : �FirstArc : �NextArc : �NextArc 
�  
�   theta=theta/4
�3   �FirstArc : �NextArc : �NextArc : �NextArc  
� �
� �
�
�� �FirstArc
� _c=1-�theta
�( _a=radius*4*(�(2*_c)-�(theta))/3/_c
�- _x0=radius : _y0=0  : �Rot(_x0,_y0,phi) 
�- _x1=radius : _y1=_a : �Rot(_x1,_y1,phi) 
�, _x2=radius : _y2=-_a: �Rot(_x2,_y2,phi)
�, _x3=radius : _y3=0  : �Rot(_x3,_y3,phi)
� �Rot(_x2,_y2,theta)
� �Rot(_x3,_y3,theta)
� �Move(x+_x0,y+_y0)
�1 �Bezier(x+_x1,y+_y1,x+_x2,y+_y2,x+_x3,y+_y3)
��
�
�� �NextArc
�   �Rot(_x0,_y0,theta)
�   �Rot(_x1,_y1,theta)
�   �Rot(_x2,_y2,theta)
�   �Rot(_x3,_y3,theta)
�3   �Bezier(x+_x1,y+_y1,x+_x2,y+_y2,x+_x3,y+_y3)
�� 
�
�� �Rot(� x,� y,theta)
�&� _X,_c,_s : _c=�theta : _s=�theta
�%_X=_c*x-_s*y : y=_s*x+_c*y : x=_X
��
�
� � �Arc(x,y,radius,theta,phi)
�� _path
��PathBegin(_path)
��@Arc(x,y,radius,theta,phi)
��PathEnd
�
=_path
�
� � �Arc(x,y,radius,theta,phi)
�� _path
�$_path=�Arc(x,y,radius,theta,phi)
��
�
�$� �@Sector(x,y,radius,theta,phi)
� � ------------------------
� � Sector of angle theta
� � centre (x,y)
� �
� � ------------------------
�  �@Arc(x,y,radius,theta,phi)
� �Draw(x,y)
� �CloseWithLine
��
�
�#� �Sector(x,y,radius,theta,phi)
�� _path
��PathBegin(_path)
�"�@Sector(x,y,radius,theta,phi)
��PathEnd
�
=_path
�
�#� �Sector(x,y,radius,theta,phi)
�� _path
�'_path=�Sector(x,y,radius,theta,phi)
��
�
�
�� =============
�� 3.5 Ellipses
�� =============
�
�� �@Ellipse(x,y,A,B)
� � ------------------------
�  � Ellipse (x/A)^2+(y/B)^2=1
� �
� � 32 words
� � ------------------------
� � a_ : a_=4*(�2-1)/3
� �Move(x,y+B)
�) �Bezier(x+a_*A,y+B,x+A,y+a_*B,x+A,y)
�) �Bezier(x+A,y-a_*B,x+a_*A,y-B,x,y-B)
�) �Bezier(x-a_*A,y-B,x-A,y-a_*B,x-A,y)
�) �Bezier(x-A,y+a_*B,x-a_*A,y+B,x,y+B)
� �CloseWithLine
� �
�
�� �Ellipse(x,y,A,B)
� � ------------------------
�  � Ellipse (x/A)^2+(y/B)^2=1
� �
� � 44 words
� � ------------------------
�
 � _path%
� �PathBegin(_path%)
� �@Ellipse(x,y,A,B)
�
 �PathEnd
��
�
�� �Ellipse(x,y,A,B)
� � ------------------------
�  � Ellipse (x/A)^2+(y/B)^2=1
� �
� � 44 words
� � ------------------------
�
 � _path%
� �PathBegin(_path%)
� �@Ellipse(x,y,A,B)
�
 �PathEnd
�=_path%
�
�� ==========
�� 3.6 Cross
�� ==========
�
�� �@Cross(x,y,width,height)
� � ------------------------
�# � Cross cntre x,y,width,height
� �
� � ------------------------
� �@HLine(x-width/2,y,width)
�! �@VLine(x,y-height/2,height)
� �
�
�� �Cross(x,y,width,height)
� � ------------------------
�$ � Cross centre x,y,width,height
� �
 � ------------------------

 � _path%
 �PathBegin(_path%)
 �@Cross(x,y,width,height)

 �PathEnd
�

� �Cross(x,y,width,height)
 � ------------------------
	$ � Cross centre x,y,width,height

 �
 � ------------------------

 � _path%

 �PathBegin(_path%)
 �@Cross(x,y,width,height)

 �PathEnd
=_path%


�
00000000  0d 00 01 23 f4 20 3e 20  44 72 61 77 42 61 73 69  |...#. > DrawBasi|
00000010  63 3a 52 65 73 6f 75 72  63 65 73 2e 46 69 67 75  |c:Resources.Figu|
00000020  72 65 73 0d 00 02 04 0d  00 03 3d f4 20 3d 3d 3d  |res.......=. ===|
00000030  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00000060  3d 3d 3d 3d 0d 00 04 05  f4 0d 00 05 24 f4 20 63  |====........$. c|
00000070  6f 70 79 72 69 67 68 74  20 4a 6f 65 20 54 61 79  |opyright Joe Tay|
00000080  6c 6f 72 20 4a 75 6e 65  20 31 39 39 34 0d 00 06  |lor June 1994...|
00000090  05 f4 0d 00 07 3b f4 20  4e 2e 42 2e 20 46 6f 72  |.....;. N.B. For|
000000a0  20 45 52 52 4f 52 20 54  48 52 4f 57 42 41 43 4b  | ERROR THROWBACK|
000000b0  20 74 6f 20 77 6f 72 6b  20 54 68 65 20 66 69 72  | to work The fir|
000000c0  73 74 20 6c 69 6e 65 20  61 62 6f 76 65 0d 00 08  |st line above...|
000000d0  37 f4 20 20 20 20 20 20  4d 55 53 54 20 68 61 76  |7.      MUST hav|
000000e0  65 20 74 68 65 20 63 6f  72 72 65 63 74 20 70 61  |e the correct pa|
000000f0  74 68 6e 61 6d 65 20 6f  66 20 74 68 69 73 20 66  |thname of this f|
00000100  69 6c 65 2e 0d 00 09 3b  f4 20 20 20 20 20 20 49  |ile....;.      I|
00000110  66 20 79 6f 75 20 6d 6f  76 65 20 74 68 65 20 6c  |f you move the l|
00000120  6f 63 61 74 69 6f 6e 20  6f 66 20 74 68 65 20 66  |ocation of the f|
00000130  69 6c 65 20 72 65 6d 65  6d 62 65 72 20 74 6f 0d  |ile remember to.|
00000140  00 0a 1f f4 20 20 20 20  20 20 61 6c 74 65 72 20  |....      alter |
00000150  74 68 69 73 20 70 61 74  68 6e 61 6d 65 2e 0d 00  |this pathname...|
00000160  0b 05 f4 0d 00 0c 3d f4  20 3d 3d 3d 3d 3d 3d 3d  |......=. =======|
00000170  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
000001a0  0d 00 0d 04 0d 00 0e 1c  f4 20 2a 2a 2a 2a 2a 2a  |......... ******|
000001b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
000001c0  0d 00 0f 05 f4 0d 00 10  1c f4 20 33 2e 20 45 58  |.......... 3. EX|
000001d0  54 45 4e 44 49 4e 47 20  44 52 41 57 42 41 53 49  |TENDING DRAWBASI|
000001e0  43 0d 00 11 05 f4 0d 00  12 1c f4 20 2a 2a 2a 2a  |C.......... ****|
000001f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00000200  2a 2a 0d 00 13 04 0d 00  14 10 f4 20 3d 3d 3d 3d  |**......... ====|
00000210  3d 3d 3d 3d 3d 3d 0d 00  15 0f f4 20 33 2e 31 20  |======..... 3.1 |
00000220  4c 69 6e 65 73 0d 00 16  10 f4 20 3d 3d 3d 3d 3d  |Lines..... =====|
00000230  3d 3d 3d 3d 3d 0d 00 17  04 0d 00 18 19 dd 20 f2  |=====......... .|
00000240  40 48 4c 69 6e 65 28 78  2c 79 2c 6c 65 6e 67 74  |@HLine(x,y,lengt|
00000250  68 29 0d 00 19 28 20 f4  20 2d 2d 2d 2d 2d 2d 2d  |h)...( . -------|
00000260  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000270  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 00 1a 1f 20 f4  |----------.... .|
00000280  20 48 20 6c 69 6e 65 20  73 74 61 72 74 69 6e 67  | H line starting|
00000290  20 61 74 20 28 78 2c 79  29 0d 00 1b 19 20 f4 20  | at (x,y).... . |
000002a0  6f 66 20 6c 65 6e 67 74  68 20 27 6c 65 6e 67 74  |of length 'lengt|
000002b0  68 27 0d 00 1c 06 20 f4  0d 00 1d 0e 20 f4 20 36  |h'.... ..... . 6|
000002c0  20 77 6f 72 64 73 0d 00  1e 28 20 f4 20 2d 2d 2d  | words...( . ---|
000002d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000002e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 00  |--------------..|
000002f0  1f 0f 20 f2 4d 6f 76 65  28 78 2c 79 29 0d 00 20  |.. .Move(x,y).. |
00000300  16 20 f2 44 72 61 77 28  78 2b 6c 65 6e 67 74 68  |. .Draw(x+length|
00000310  2c 79 29 0d 00 21 06 20  e1 0d 00 22 04 0d 00 23  |,y)..!. ..."...#|
00000320  18 dd 20 f2 48 4c 69 6e  65 28 78 2c 79 2c 6c 65  |.. .HLine(x,y,le|
00000330  6e 67 74 68 29 0d 00 24  28 20 f4 20 2d 2d 2d 2d  |ngth)..$( . ----|
00000340  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000350  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 00 25  |-------------..%|
00000360  1f 20 f4 20 48 20 6c 69  6e 65 20 73 74 61 72 74  |. . H line start|
00000370  69 6e 67 20 61 74 20 28  78 2c 79 29 0d 00 26 19  |ing at (x,y)..&.|
00000380  20 f4 20 6f 66 20 6c 65  6e 67 74 68 20 27 6c 65  | . of length 'le|
00000390  6e 67 74 68 27 0d 00 27  06 20 f4 0d 00 28 0f 20  |ngth'..'. ...(. |
000003a0  f4 20 31 38 20 77 6f 72  64 73 0d 00 29 28 20 f4  |. 18 words..)( .|
000003b0  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
000003c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000003d0  2d 2d 0d 00 2a 0d 20 ea  20 5f 70 61 74 68 25 0d  |--..*. . _path%.|
000003e0  00 2b 17 20 f2 50 61 74  68 42 65 67 69 6e 28 5f  |.+. .PathBegin(_|
000003f0  70 61 74 68 25 29 0d 00  2c 18 20 f2 40 48 4c 69  |path%)..,. .@HLi|
00000400  6e 65 28 78 2c 79 2c 6c  65 6e 67 74 68 29 0d 00  |ne(x,y,length)..|
00000410  2d 0d 20 f2 50 61 74 68  45 6e 64 0d 00 2e 05 e1  |-. .PathEnd.....|
00000420  0d 00 2f 04 0d 00 30 18  dd 20 a4 48 4c 69 6e 65  |../...0.. .HLine|
00000430  28 78 2c 79 2c 6c 65 6e  67 74 68 29 0d 00 31 28  |(x,y,length)..1(|
00000440  20 f4 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | . -------------|
00000450  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000460  2d 2d 2d 2d 0d 00 32 1e  20 f4 20 48 20 6c 69 6e  |----..2. . H lin|
00000470  65 20 73 74 61 72 69 6e  67 20 61 74 20 28 78 2c  |e staring at (x,|
00000480  79 29 0d 00 33 17 20 f4  20 6f 66 20 6c 65 6e 67  |y)..3. . of leng|
00000490  74 68 20 6c 65 6e 67 74  68 0d 00 34 06 20 f4 0d  |th length..4. ..|
000004a0  00 35 0f 20 f4 20 31 38  20 77 6f 72 64 73 0d 00  |.5. . 18 words..|
000004b0  36 28 20 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |6( . -----------|
000004c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000004d0  2d 2d 2d 2d 2d 2d 0d 00  37 0d 20 ea 20 5f 70 61  |------..7. . _pa|
000004e0  74 68 25 0d 00 38 17 20  f2 50 61 74 68 42 65 67  |th%..8. .PathBeg|
000004f0  69 6e 28 5f 70 61 74 68  25 29 0d 00 39 18 20 f2  |in(_path%)..9. .|
00000500  40 48 4c 69 6e 65 28 78  2c 79 2c 6c 65 6e 67 74  |@HLine(x,y,lengt|
00000510  68 29 0d 00 3a 0d 20 f2  50 61 74 68 45 6e 64 0d  |h)..:. .PathEnd.|
00000520  00 3b 0b 3d 5f 70 61 74  68 25 0d 00 3c 04 0d 00  |.;.=_path%..<...|
00000530  3d 19 dd 20 f2 40 56 4c  69 6e 65 28 78 2c 79 2c  |=.. .@VLine(x,y,|
00000540  6c 65 6e 67 74 68 29 0d  00 3e 28 20 f4 20 2d 2d  |length)..>( . --|
00000550  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000560  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00000570  00 3f 1e 20 f4 20 48 20  6c 69 6e 65 20 73 74 61  |.?. . H line sta|
00000580  72 69 6e 67 20 61 74 20  28 78 2c 79 29 0d 00 40  |ring at (x,y)..@|
00000590  17 20 f4 20 6f 66 20 6c  65 6e 67 74 68 20 6c 65  |. . of length le|
000005a0  6e 67 74 68 0d 00 41 06  20 f4 0d 00 42 0e 20 f4  |ngth..A. ...B. .|
000005b0  20 36 20 77 6f 72 64 73  0d 00 43 28 20 f4 20 2d  | 6 words..C( . -|
000005c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000005e0  0d 00 44 0f 20 f2 4d 6f  76 65 28 78 2c 79 29 0d  |..D. .Move(x,y).|
000005f0  00 45 16 20 f2 44 72 61  77 28 78 2c 79 2b 6c 65  |.E. .Draw(x,y+le|
00000600  6e 67 74 68 29 0d 00 46  06 20 e1 0d 00 47 04 0d  |ngth)..F. ...G..|
00000610  00 48 18 dd 20 f2 56 4c  69 6e 65 28 78 2c 79 2c  |.H.. .VLine(x,y,|
00000620  6c 65 6e 67 74 68 29 0d  00 49 28 20 f4 20 2d 2d  |length)..I( . --|
00000630  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000640  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00000650  00 4a 1e 20 f4 20 48 20  6c 69 6e 65 20 73 74 61  |.J. . H line sta|
00000660  72 69 6e 67 20 61 74 20  28 78 2c 79 29 0d 00 4b  |ring at (x,y)..K|
00000670  17 20 f4 20 6f 66 20 6c  65 6e 67 74 68 20 6c 65  |. . of length le|
00000680  6e 67 74 68 0d 00 4c 06  20 f4 0d 00 4d 0f 20 f4  |ngth..L. ...M. .|
00000690  20 31 38 20 77 6f 72 64  73 0d 00 4e 28 20 f4 20  | 18 words..N( . |
000006a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000006c0  2d 0d 00 4f 0d 20 ea 20  5f 70 61 74 68 25 0d 00  |-..O. . _path%..|
000006d0  50 17 20 f2 50 61 74 68  42 65 67 69 6e 28 5f 70  |P. .PathBegin(_p|
000006e0  61 74 68 25 29 0d 00 51  18 20 f2 40 56 4c 69 6e  |ath%)..Q. .@VLin|
000006f0  65 28 78 2c 79 2c 6c 65  6e 67 74 68 29 0d 00 52  |e(x,y,length)..R|
00000700  0d 20 f2 50 61 74 68 45  6e 64 0d 00 53 05 e1 0d  |. .PathEnd..S...|
00000710  00 54 04 0d 00 55 18 dd  20 a4 56 4c 69 6e 65 28  |.T...U.. .VLine(|
00000720  78 2c 79 2c 6c 65 6e 67  74 68 29 0d 00 56 28 20  |x,y,length)..V( |
00000730  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
00000740  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000750  2d 2d 2d 0d 00 57 1e 20  f4 20 48 20 6c 69 6e 65  |---..W. . H line|
00000760  20 73 74 61 72 69 6e 67  20 61 74 20 28 78 2c 79  | staring at (x,y|
00000770  29 0d 00 58 17 20 f4 20  6f 66 20 6c 65 6e 67 74  |)..X. . of lengt|
00000780  68 20 6c 65 6e 67 74 68  0d 00 59 06 20 f4 0d 00  |h length..Y. ...|
00000790  5a 0f 20 f4 20 31 38 20  77 6f 72 64 73 0d 00 5b  |Z. . 18 words..[|
000007a0  28 20 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |( . ------------|
000007b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000007c0  2d 2d 2d 2d 2d 0d 00 5c  0d 20 ea 20 5f 70 61 74  |-----..\. . _pat|
000007d0  68 25 0d 00 5d 17 20 f2  50 61 74 68 42 65 67 69  |h%..]. .PathBegi|
000007e0  6e 28 5f 70 61 74 68 25  29 0d 00 5e 18 20 f2 40  |n(_path%)..^. .@|
000007f0  56 4c 69 6e 65 28 78 2c  79 2c 6c 65 6e 67 74 68  |VLine(x,y,length|
00000800  29 0d 00 5f 0d 20 f2 50  61 74 68 45 6e 64 0d 00  |).._. .PathEnd..|
00000810  60 0b 3d 5f 70 61 74 68  25 0d 00 61 04 0d 00 62  |`.=_path%..a...b|
00000820  15 dd 20 f2 40 4c 69 6e  65 28 78 2c 79 2c 58 2c  |.. .@Line(x,y,X,|
00000830  59 29 0d 00 63 28 20 f4  20 2d 2d 2d 2d 2d 2d 2d  |Y)..c( . -------|
00000840  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000850  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 00 64 26 20 f4  |----------..d& .|
00000860  20 4c 69 6e 65 20 73 74  61 72 74 69 6e 67 20 61  | Line starting a|
00000870  74 20 28 78 2c 79 29 20  74 6f 20 28 58 2c 59 29  |t (x,y) to (X,Y)|
00000880  0d 00 65 17 20 f4 20 6f  66 20 6c 65 6e 67 74 68  |..e. . of length|
00000890  20 6c 65 6e 67 74 68 0d  00 66 06 20 f4 0d 00 67  | length..f. ...g|
000008a0  0e 20 f4 20 36 20 77 6f  72 64 73 0d 00 68 28 20  |. . 6 words..h( |
000008b0  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
000008c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000008d0  2d 2d 2d 0d 00 69 0f 20  f2 4d 6f 76 65 28 78 2c  |---..i. .Move(x,|
000008e0  79 29 0d 00 6a 0f 20 f2  44 72 61 77 28 58 2c 59  |y)..j. .Draw(X,Y|
000008f0  29 0d 00 6b 06 20 e1 0d  00 6c 04 0d 00 6d 14 dd  |)..k. ...l...m..|
00000900  20 f2 4c 69 6e 65 28 78  2c 79 2c 58 2c 59 29 0d  | .Line(x,y,X,Y).|
00000910  00 6e 28 20 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.n( . ----------|
00000920  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000930  2d 2d 2d 2d 2d 2d 2d 0d  00 6f 26 20 f4 20 4c 69  |-------..o& . Li|
00000940  6e 65 20 73 74 61 72 74  69 6e 67 20 61 74 20 28  |ne starting at (|
00000950  78 2c 79 29 20 74 6f 20  28 58 2c 59 29 0d 00 70  |x,y) to (X,Y)..p|
00000960  17 20 f4 20 6f 66 20 6c  65 6e 67 74 68 20 6c 65  |. . of length le|
00000970  6e 67 74 68 0d 00 71 06  20 f4 0d 00 72 0f 20 f4  |ngth..q. ...r. .|
00000980  20 31 38 20 77 6f 72 64  73 0d 00 73 28 20 f4 20  | 18 words..s( . |
00000990  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000009b0  2d 0d 00 74 0d 20 ea 20  5f 70 61 74 68 25 0d 00  |-..t. . _path%..|
000009c0  75 17 20 f2 50 61 74 68  42 65 67 69 6e 28 5f 70  |u. .PathBegin(_p|
000009d0  61 74 68 25 29 0d 00 76  14 20 f2 40 4c 69 6e 65  |ath%)..v. .@Line|
000009e0  28 78 2c 79 2c 58 2c 59  29 0d 00 77 0d 20 f2 50  |(x,y,X,Y)..w. .P|
000009f0  61 74 68 45 6e 64 0d 00  78 05 e1 0d 00 79 04 0d  |athEnd..x....y..|
00000a00  00 7a 14 dd 20 a4 4c 69  6e 65 28 78 2c 79 2c 58  |.z.. .Line(x,y,X|
00000a10  2c 59 29 0d 00 7b 28 20  f4 20 2d 2d 2d 2d 2d 2d  |,Y)..{( . ------|
00000a20  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000a30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 00 7c 26 20  |-----------..|& |
00000a40  f4 20 4c 69 6e 65 20 73  74 61 72 74 69 6e 67 20  |. Line starting |
00000a50  61 74 20 28 78 2c 79 29  20 74 6f 20 28 58 2c 59  |at (x,y) to (X,Y|
00000a60  29 0d 00 7d 17 20 f4 20  6f 66 20 6c 65 6e 67 74  |)..}. . of lengt|
00000a70  68 20 6c 65 6e 67 74 68  0d 00 7e 06 20 f4 0d 00  |h length..~. ...|
00000a80  7f 0f 20 f4 20 31 38 20  77 6f 72 64 73 0d 00 80  |.. . 18 words...|
00000a90  28 20 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |( . ------------|
00000aa0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000ab0  2d 2d 2d 2d 2d 0d 00 81  0d 20 ea 20 5f 70 61 74  |-----.... . _pat|
00000ac0  68 25 0d 00 82 17 20 f2  50 61 74 68 42 65 67 69  |h%.... .PathBegi|
00000ad0  6e 28 5f 70 61 74 68 25  29 0d 00 83 14 20 f2 40  |n(_path%).... .@|
00000ae0  4c 69 6e 65 28 78 2c 79  2c 58 2c 59 29 0d 00 84  |Line(x,y,X,Y)...|
00000af0  0d 20 f2 50 61 74 68 45  6e 64 0d 00 85 0b 3d 5f  |. .PathEnd....=_|
00000b00  70 61 74 68 25 0d 00 86  04 0d 00 87 13 f4 20 3d  |path%......... =|
00000b10  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 0d 00 88 12  |============....|
00000b20  f4 20 33 2e 32 20 50 6f  6c 79 67 6f 6e 73 0d 00  |. 3.2 Polygons..|
00000b30  89 13 f4 20 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |... ============|
00000b40  3d 0d 00 8a 04 0d 00 8b  23 dd 20 f2 40 52 65 63  |=.......#. .@Rec|
00000b50  74 61 6e 67 6c 65 28 78  2c 79 2c 77 69 64 74 68  |tangle(x,y,width|
00000b60  2c 68 65 69 67 68 74 29  0d 00 8c 1f 20 f4 20 2d  |,height).... . -|
00000b70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000b80  2d 2d 2d 2d 2d 2d 2d 0d  00 8d 21 20 f4 20 52 65  |-------...! . Re|
00000b90  63 74 61 6e 67 6c 65 20  78 2c 79 2c 77 69 64 74  |ctangle x,y,widt|
00000ba0  68 2c 68 65 69 67 68 74  0d 00 8e 06 20 f4 0d 00  |h,height.... ...|
00000bb0  8f 0f 20 f4 20 31 33 20  77 6f 72 64 73 0d 00 90  |.. . 13 words...|
00000bc0  1f 20 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. . ------------|
00000bd0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 00 91 0f  |------------....|
00000be0  20 f2 4d 6f 76 65 28 78  2c 79 29 0d 00 92 15 20  | .Move(x,y).... |
00000bf0  f2 44 72 61 77 28 78 2b  77 69 64 74 68 2c 79 29  |.Draw(x+width,y)|
00000c00  0d 00 93 1c 20 f2 44 72  61 77 28 78 2b 77 69 64  |.... .Draw(x+wid|
00000c10  74 68 2c 79 2b 68 65 69  67 68 74 29 0d 00 94 16  |th,y+height)....|
00000c20  20 f2 44 72 61 77 28 78  2c 79 2b 68 65 69 67 68  | .Draw(x,y+heigh|
00000c30  74 29 0d 00 95 13 20 f2  43 6c 6f 73 65 57 69 74  |t).... .CloseWit|
00000c40  68 4c 69 6e 65 0d 00 96  06 20 e1 0d 00 97 04 0d  |hLine.... ......|
00000c50  00 98 22 dd 20 f2 52 65  63 74 61 6e 67 6c 65 28  |..". .Rectangle(|
00000c60  78 2c 79 2c 77 69 64 74  68 2c 68 65 69 67 68 74  |x,y,width,height|
00000c70  29 0d 00 99 1f 20 f4 20  2d 2d 2d 2d 2d 2d 2d 2d  |).... . --------|
00000c80  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000c90  0d 00 9a 21 20 f4 20 52  65 63 74 61 6e 67 6c 65  |...! . Rectangle|
00000ca0  20 78 2c 79 2c 77 69 64  74 68 2c 68 65 69 67 68  | x,y,width,heigh|
00000cb0  74 0d 00 9b 06 20 f4 0d  00 9c 0f 20 f4 20 32 35  |t.... ..... . 25|
00000cc0  20 77 6f 72 64 73 0d 00  9d 1f 20 f4 20 2d 2d 2d  | words.... . ---|
00000cd0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000ce0  2d 2d 2d 2d 2d 0d 00 9e  0d 20 ea 20 5f 70 61 74  |-----.... . _pat|
00000cf0  68 25 0d 00 9f 17 20 f2  50 61 74 68 42 65 67 69  |h%.... .PathBegi|
00000d00  6e 28 5f 70 61 74 68 25  29 0d 00 a0 22 20 f2 40  |n(_path%)..." .@|
00000d10  52 65 63 74 61 6e 67 6c  65 28 78 2c 79 2c 77 69  |Rectangle(x,y,wi|
00000d20  64 74 68 2c 68 65 69 67  68 74 29 0d 00 a1 0d 20  |dth,height).... |
00000d30  f2 50 61 74 68 45 6e 64  0d 00 a2 05 e1 0d 00 a3  |.PathEnd........|
00000d40  04 0d 00 a4 22 dd 20 a4  52 65 63 74 61 6e 67 6c  |....". .Rectangl|
00000d50  65 28 78 2c 79 2c 77 69  64 74 68 2c 68 65 69 67  |e(x,y,width,heig|
00000d60  68 74 29 0d 00 a5 1f 20  f4 20 2d 2d 2d 2d 2d 2d  |ht).... . ------|
00000d70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000d80  2d 2d 0d 00 a6 21 20 f4  20 52 65 63 74 61 6e 67  |--...! . Rectang|
00000d90  6c 65 20 78 2c 79 2c 77  69 64 74 68 2c 68 65 69  |le x,y,width,hei|
00000da0  67 68 74 0d 00 a7 06 20  f4 0d 00 a8 0f 20 f4 20  |ght.... ..... . |
00000db0  32 35 20 77 6f 72 64 73  0d 00 a9 1f 20 f4 20 2d  |25 words.... . -|
00000dc0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000dd0  2d 2d 2d 2d 2d 2d 2d 0d  00 aa 0d 20 ea 20 5f 70  |-------.... . _p|
00000de0  61 74 68 25 0d 00 ab 17  20 f2 50 61 74 68 42 65  |ath%.... .PathBe|
00000df0  67 69 6e 28 5f 70 61 74  68 25 29 0d 00 ac 22 20  |gin(_path%)..." |
00000e00  f2 40 52 65 63 74 61 6e  67 6c 65 28 78 2c 79 2c  |.@Rectangle(x,y,|
00000e10  77 69 64 74 68 2c 68 65  69 67 68 74 29 0d 00 ad  |width,height)...|
00000e20  0d 20 f2 50 61 74 68 45  6e 64 0d 00 ae 0b 3d 5f  |. .PathEnd....=_|
00000e30  70 61 74 68 25 0d 00 af  04 0d 00 b0 19 dd 20 f2  |path%......... .|
00000e40  40 53 71 75 61 72 65 28  78 2c 79 2c 77 69 64 74  |@Square(x,y,widt|
00000e50  68 29 0d 00 b1 1f 20 f4  20 2d 2d 2d 2d 2d 2d 2d  |h).... . -------|
00000e60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000e70  2d 0d 00 b2 17 20 f4 20  53 71 75 61 72 65 20 78  |-.... . Square x|
00000e80  2c 79 2c 77 69 64 74 68  0d 00 b3 06 20 f4 0d 00  |,y,width.... ...|
00000e90  b4 0f 20 f4 20 31 33 20  77 6f 72 64 73 0d 00 b5  |.. . 13 words...|
00000ea0  1f 20 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. . ------------|
00000eb0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 00 b6 21  |------------...!|
00000ec0  20 f2 40 52 65 63 74 61  6e 67 6c 65 28 78 2c 79  | .@Rectangle(x,y|
00000ed0  2c 77 69 64 74 68 2c 77  69 64 74 68 29 0d 00 b7  |,width,width)...|
00000ee0  06 20 e1 0d 00 b8 04 0d  00 b9 18 dd 20 f2 53 71  |. .......... .Sq|
00000ef0  75 61 72 65 28 78 2c 79  2c 77 69 64 74 68 29 0d  |uare(x,y,width).|
00000f00  00 ba 1f 20 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |... . ----------|
00000f10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 00  |--------------..|
00000f20  bb 17 20 f4 20 53 71 75  61 72 65 20 78 2c 79 2c  |.. . Square x,y,|
00000f30  77 69 64 74 68 0d 00 bc  06 20 f4 0d 00 bd 0f 20  |width.... ..... |
00000f40  f4 20 32 35 20 77 6f 72  64 73 0d 00 be 1f 20 f4  |. 25 words.... .|
00000f50  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00000f60  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 00 bf 0d 20 ea 20  |---------.... . |
00000f70  5f 70 61 74 68 25 0d 00  c0 17 20 f2 50 61 74 68  |_path%.... .Path|
00000f80  42 65 67 69 6e 28 5f 70  61 74 68 25 29 0d 00 c1  |Begin(_path%)...|
00000f90  18 20 f2 40 53 71 75 61  72 65 28 78 2c 79 2c 77  |. .@Square(x,y,w|
00000fa0  69 64 74 68 29 0d 00 c2  0d 20 f2 50 61 74 68 45  |idth).... .PathE|
00000fb0  6e 64 0d 00 c3 05 e1 0d  00 c4 04 0d 00 c5 18 dd  |nd..............|
00000fc0  20 a4 53 71 75 61 72 65  28 78 2c 79 2c 77 69 64  | .Square(x,y,wid|
00000fd0  74 68 29 0d 00 c6 1f 20  f4 20 2d 2d 2d 2d 2d 2d  |th).... . ------|
00000fe0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000ff0  2d 2d 0d 00 c7 17 20 f4  20 53 71 75 61 72 65 20  |--.... . Square |
00001000  78 2c 79 2c 77 69 64 74  68 0d 00 c8 06 20 f4 0d  |x,y,width.... ..|
00001010  00 c9 0f 20 f4 20 32 35  20 77 6f 72 64 73 0d 00  |... . 25 words..|
00001020  ca 1f 20 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.. . -----------|
00001030  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 00 cb  |-------------...|
00001040  0d 20 ea 20 5f 70 61 74  68 25 0d 00 cc 17 20 f2  |. . _path%.... .|
00001050  50 61 74 68 42 65 67 69  6e 28 5f 70 61 74 68 25  |PathBegin(_path%|
00001060  29 0d 00 cd 18 20 f2 40  53 71 75 61 72 65 28 78  |).... .@Square(x|
00001070  2c 79 2c 77 69 64 74 68  29 0d 00 ce 0d 20 f2 50  |,y,width).... .P|
00001080  61 74 68 45 6e 64 0d 00  cf 0b 3d 5f 70 61 74 68  |athEnd....=_path|
00001090  25 0d 00 d0 04 0d 00 d1  1d dd 20 f2 40 54 72 69  |%......... .@Tri|
000010a0  61 6e 67 6c 65 28 41 2c  61 2c 42 2c 62 2c 43 2c  |angle(A,a,B,b,C,|
000010b0  63 29 0d 00 d2 23 20 f4  20 2d 2d 2d 2d 2d 2d 2d  |c)...# . -------|
000010c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000010d0  2d 2d 2d 2d 2d 0d 00 d3  22 20 f4 20 54 72 69 61  |-----..." . Tria|
000010e0  6e 67 6c 65 20 20 28 41  2c 61 29 20 28 42 2c 62  |ngle  (A,a) (B,b|
000010f0  29 20 28 43 2c 63 29 0d  00 d4 06 20 f4 0d 00 d5  |) (C,c).... ....|
00001100  0f 20 f4 20 31 30 20 77  6f 72 64 73 0d 00 d6 23  |. . 10 words...#|
00001110  20 f4 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | . -------------|
00001120  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00001130  00 d7 0f 20 f2 4d 6f 76  65 28 41 2c 61 29 0d 00  |... .Move(A,a)..|
00001140  d8 0f 20 f2 44 72 61 77  28 42 2c 62 29 0d 00 d9  |.. .Draw(B,b)...|
00001150  0f 20 f2 44 72 61 77 28  43 2c 63 29 0d 00 da 13  |. .Draw(C,c)....|
00001160  20 f2 43 6c 6f 73 65 57  69 74 68 4c 69 6e 65 0d  | .CloseWithLine.|
00001170  00 db 06 20 e1 0d 00 dc  04 0d 00 dd 1c dd 20 f2  |... .......... .|
00001180  54 72 69 61 6e 67 6c 65  28 41 2c 61 2c 42 2c 62  |Triangle(A,a,B,b|
00001190  2c 43 2c 63 29 0d 00 de  23 20 f4 20 2d 2d 2d 2d  |,C,c)...# . ----|
000011a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000011b0  2d 2d 2d 2d 2d 2d 2d 2d  0d 00 df 22 20 f4 20 54  |--------..." . T|
000011c0  72 69 61 6e 67 6c 65 20  20 28 41 2c 61 29 20 28  |riangle  (A,a) (|
000011d0  42 2c 62 29 20 28 43 2c  63 29 0d 00 e0 06 20 f4  |B,b) (C,c).... .|
000011e0  0d 00 e1 0f 20 f4 20 32  32 20 77 6f 72 64 73 0d  |.... . 22 words.|
000011f0  00 e2 23 20 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..# . ----------|
00001200  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001210  2d 2d 0d 00 e3 0d 20 ea  20 5f 70 61 74 68 25 0d  |--.... . _path%.|
00001220  00 e4 17 20 f2 50 61 74  68 42 65 67 69 6e 28 5f  |... .PathBegin(_|
00001230  70 61 74 68 25 29 0d 00  e5 1c 20 f2 40 54 72 69  |path%).... .@Tri|
00001240  61 6e 67 6c 65 28 41 2c  61 2c 42 2c 62 2c 43 2c  |angle(A,a,B,b,C,|
00001250  63 29 0d 00 e6 0d 20 f2  50 61 74 68 45 6e 64 0d  |c).... .PathEnd.|
00001260  00 e7 05 e1 0d 00 e8 04  0d 00 e9 1c dd 20 a4 54  |............. .T|
00001270  72 69 61 6e 67 6c 65 28  41 2c 61 2c 42 2c 62 2c  |riangle(A,a,B,b,|
00001280  43 2c 63 29 0d 00 ea 23  20 f4 20 2d 2d 2d 2d 2d  |C,c)...# . -----|
00001290  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000012a0  2d 2d 2d 2d 2d 2d 2d 0d  00 eb 22 20 f4 20 54 72  |-------..." . Tr|
000012b0  69 61 6e 67 6c 65 20 20  28 41 2c 61 29 20 28 42  |iangle  (A,a) (B|
000012c0  2c 62 29 20 28 43 2c 63  29 0d 00 ec 06 20 f4 0d  |,b) (C,c).... ..|
000012d0  00 ed 0f 20 f4 20 32 32  20 77 6f 72 64 73 0d 00  |... . 22 words..|
000012e0  ee 23 20 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.# . -----------|
000012f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001300  2d 0d 00 ef 0d 20 ea 20  5f 70 61 74 68 25 0d 00  |-.... . _path%..|
00001310  f0 17 20 f2 50 61 74 68  42 65 67 69 6e 28 5f 70  |.. .PathBegin(_p|
00001320  61 74 68 25 29 0d 00 f1  1c 20 f2 40 54 72 69 61  |ath%).... .@Tria|
00001330  6e 67 6c 65 28 41 2c 61  2c 42 2c 62 2c 43 2c 63  |ngle(A,a,B,b,C,c|
00001340  29 0d 00 f2 0d 20 f2 50  61 74 68 45 6e 64 0d 00  |).... .PathEnd..|
00001350  f3 0b 3d 5f 70 61 74 68  25 0d 00 f4 04 0d 00 f5  |..=_path%.......|
00001360  21 dd 20 f2 40 44 69 61  6d 6f 6e 64 28 78 2c 79  |!. .@Diamond(x,y|
00001370  2c 77 69 64 74 68 2c 68  65 69 67 68 74 29 0d 00  |,width,height)..|
00001380  f6 26 20 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.& . -----------|
00001390  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000013a0  2d 2d 2d 2d 0d 00 f7 06  20 f4 0d 00 f8 26 20 f4  |----.... ....& .|
000013b0  20 44 69 61 6d 6f 6e 64  20 63 65 6e 74 72 65 20  | Diamond centre |
000013c0  78 2c 79 2c 77 69 64 74  68 2c 68 65 69 67 68 74  |x,y,width,height|
000013d0  0d 00 f9 06 20 f4 0d 00  fa 26 20 f4 20 2d 2d 2d  |.... ....& . ---|
000013e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000013f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 00 fb 15  |------------....|
00001400  20 f2 4d 6f 76 65 28 78  2b 77 69 64 74 68 2c 79  | .Move(x+width,y|
00001410  29 0d 00 fc 16 20 f2 44  72 61 77 28 78 2c 79 2b  |).... .Draw(x,y+|
00001420  68 65 69 67 68 74 29 0d  00 fd 15 20 f2 44 72 61  |height).... .Dra|
00001430  77 28 78 2d 77 69 64 74  68 2c 79 29 0d 00 fe 16  |w(x-width,y)....|
00001440  20 f2 44 72 61 77 28 78  2c 79 2d 68 65 69 67 68  | .Draw(x,y-heigh|
00001450  74 29 0d 00 ff 13 20 f2  43 6c 6f 73 65 57 69 74  |t).... .CloseWit|
00001460  68 4c 69 6e 65 0d 01 00  06 20 e1 0d 01 01 04 0d  |hLine.... ......|
00001470  01 02 20 dd 20 f2 44 69  61 6d 6f 6e 64 28 78 2c  |.. . .Diamond(x,|
00001480  79 2c 77 69 64 74 68 2c  68 65 69 67 68 74 29 0d  |y,width,height).|
00001490  01 03 0d 20 ea 20 5f 70  61 74 68 25 0d 01 04 17  |... . _path%....|
000014a0  20 f2 50 61 74 68 42 65  67 69 6e 28 5f 70 61 74  | .PathBegin(_pat|
000014b0  68 25 29 0d 01 05 20 20  f2 40 44 69 61 6d 6f 6e  |h%)...  .@Diamon|
000014c0  64 28 78 2c 79 2c 77 69  64 74 68 2c 68 65 69 67  |d(x,y,width,heig|
000014d0  68 74 29 0d 01 06 0d 20  f2 50 61 74 68 45 6e 64  |ht).... .PathEnd|
000014e0  0d 01 07 05 e1 0d 01 08  04 0d 01 09 20 dd 20 a4  |............ . .|
000014f0  44 69 61 6d 6f 6e 64 28  78 2c 79 2c 77 69 64 74  |Diamond(x,y,widt|
00001500  68 2c 68 65 69 67 68 74  29 0d 01 0a 0d 20 ea 20  |h,height).... . |
00001510  5f 70 61 74 68 25 0d 01  0b 17 20 f2 50 61 74 68  |_path%.... .Path|
00001520  42 65 67 69 6e 28 5f 70  61 74 68 25 29 0d 01 0c  |Begin(_path%)...|
00001530  20 20 f2 40 44 69 61 6d  6f 6e 64 28 78 2c 79 2c  |  .@Diamond(x,y,|
00001540  77 69 64 74 68 2c 68 65  69 67 68 74 29 0d 01 0d  |width,height)...|
00001550  0d 20 f2 50 61 74 68 45  6e 64 0d 01 0e 0b 3d 5f  |. .PathEnd....=_|
00001560  70 61 74 68 25 0d 01 0f  04 0d 01 10 25 dd 20 f2  |path%.......%. .|
00001570  40 52 65 67 75 6c 61 72  50 6f 6c 79 67 6f 6e 28  |@RegularPolygon(|
00001580  78 2c 79 2c 72 61 64 69  75 73 2c 6e 25 29 0d 01  |x,y,radius,n%)..|
00001590  11 25 20 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.% . -----------|
000015a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000015b0  2d 2d 2d 0d 01 12 23 20  f4 20 52 65 67 75 6c 61  |---...# . Regula|
000015c0  72 20 70 6f 6c 79 67 6f  6e 20 63 65 6e 74 72 65  |r polygon centre|
000015d0  20 28 78 2c 79 29 0d 01  13 06 20 f4 0d 01 14 18  | (x,y).... .....|
000015e0  20 f4 20 4e 75 6d 62 65  72 20 6f 66 20 73 69 64  | . Number of sid|
000015f0  65 73 3d 6e 0d 01 15 06  20 f4 0d 01 16 12 20 f4  |es=n.... ..... .|
00001600  20 33 2a 6e 2b 31 20 77  6f 72 64 73 0d 01 17 25  | 3*n+1 words...%|
00001610  20 f4 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | . -------------|
00001620  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001630  2d 0d 01 18 0a 20 ea 20  5f 69 25 0d 01 19 11 20  |-.... . _i%.... |
00001640  e3 20 5f 69 25 3d 31 20  b8 20 6e 25 0d 01 1a 1e  |. _i%=1 . n%....|
00001650  20 20 58 3d 78 2b 72 61  64 69 75 73 2a 9b 28 32  |  X=x+radius*.(2|
00001660  2a af 2a 5f 69 25 2f 6e  25 29 0d 01 1b 1e 20 20  |*.*_i%/n%)....  |
00001670  59 3d 79 2b 72 61 64 69  75 73 2a b5 28 32 2a af  |Y=y+radius*.(2*.|
00001680  2a 5f 69 25 2f 6e 25 29  0d 01 1c 29 20 20 e7 20  |*_i%/n%)...)  . |
00001690  5f 69 25 3d 31 20 8c 20  f2 4d 6f 76 65 28 58 2c  |_i%=1 . .Move(X,|
000016a0  59 29 20 8b 20 20 20 f2  44 72 61 77 28 58 2c 59  |Y) .   .Draw(X,Y|
000016b0  29 0d 01 1d 07 20 20 ed  0d 01 1e 14 20 20 f2 43  |)....  .....  .C|
000016c0  6c 6f 73 65 57 69 74 68  4c 69 6e 65 0d 01 1f 06  |loseWithLine....|
000016d0  20 e1 0d 01 20 04 0d 01  21 24 dd 20 f2 52 65 67  | ... ...!$. .Reg|
000016e0  75 6c 61 72 50 6f 6c 79  67 6f 6e 28 78 2c 79 2c  |ularPolygon(x,y,|
000016f0  72 61 64 69 75 73 2c 6e  25 29 0d 01 22 25 20 f4  |radius,n%).."% .|
00001700  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00001710  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00001720  01 23 23 20 f4 20 52 65  67 75 6c 61 72 20 70 6f  |.## . Regular po|
00001730  6c 79 67 6f 6e 20 63 65  6e 74 72 65 20 28 78 2c  |lygon centre (x,|
00001740  79 29 0d 01 24 06 20 f4  0d 01 25 18 20 f4 20 4e  |y)..$. ...%. . N|
00001750  75 6d 62 65 72 20 6f 66  20 73 69 64 65 73 3d 6e  |umber of sides=n|
00001760  0d 01 26 06 20 f4 0d 01  27 13 20 f4 20 33 2a 6e  |..&. ...'. . 3*n|
00001770  2b 31 33 20 77 6f 72 64  73 0d 01 28 25 20 f4 20  |+13 words..(% . |
00001780  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001790  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 01  |--------------..|
000017a0  29 0d 20 ea 20 5f 70 61  74 68 25 0d 01 2a 17 20  |). . _path%..*. |
000017b0  f2 50 61 74 68 42 65 67  69 6e 28 5f 70 61 74 68  |.PathBegin(_path|
000017c0  25 29 0d 01 2b 24 20 f2  40 52 65 67 75 6c 61 72  |%)..+$ .@Regular|
000017d0  50 6f 6c 79 67 6f 6e 28  78 2c 79 2c 72 61 64 69  |Polygon(x,y,radi|
000017e0  75 73 2c 6e 25 29 0d 01  2c 0d 20 f2 50 61 74 68  |us,n%)..,. .Path|
000017f0  45 6e 64 0d 01 2d 05 e1  0d 01 2e 04 0d 01 2f 24  |End..-......../$|
00001800  dd 20 a4 52 65 67 75 6c  61 72 50 6f 6c 79 67 6f  |. .RegularPolygo|
00001810  6e 28 78 2c 79 2c 72 61  64 69 75 73 2c 6e 25 29  |n(x,y,radius,n%)|
00001820  0d 01 30 25 20 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..0% . ---------|
00001830  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001840  2d 2d 2d 2d 2d 0d 01 31  23 20 f4 20 52 65 67 75  |-----..1# . Regu|
00001850  6c 61 72 20 70 6f 6c 79  67 6f 6e 20 63 65 6e 74  |lar polygon cent|
00001860  72 65 20 28 78 2c 79 29  0d 01 32 06 20 f4 0d 01  |re (x,y)..2. ...|
00001870  33 18 20 f4 20 4e 75 6d  62 65 72 20 6f 66 20 73  |3. . Number of s|
00001880  69 64 65 73 3d 6e 0d 01  34 06 20 f4 0d 01 35 13  |ides=n..4. ...5.|
00001890  20 f4 20 33 2a 6e 2b 31  33 20 77 6f 72 64 73 0d  | . 3*n+13 words.|
000018a0  01 36 25 20 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.6% . ----------|
000018b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000018c0  2d 2d 2d 2d 0d 01 37 0d  20 ea 20 5f 70 61 74 68  |----..7. . _path|
000018d0  25 0d 01 38 17 20 f2 50  61 74 68 42 65 67 69 6e  |%..8. .PathBegin|
000018e0  28 5f 70 61 74 68 25 29  0d 01 39 24 20 f2 40 52  |(_path%)..9$ .@R|
000018f0  65 67 75 6c 61 72 50 6f  6c 79 67 6f 6e 28 78 2c  |egularPolygon(x,|
00001900  79 2c 72 61 64 69 75 73  2c 6e 25 29 0d 01 3a 0d  |y,radius,n%)..:.|
00001910  20 f2 50 61 74 68 45 6e  64 0d 01 3b 0b 3d 5f 70  | .PathEnd..;.=_p|
00001920  61 74 68 25 0d 01 3c 04  0d 01 3d 12 f4 20 3d 3d  |ath%..<...=.. ==|
00001930  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 0d 01 3e 11 f4 20  |==========..>.. |
00001940  33 2e 33 20 43 69 72 63  6c 65 73 0d 01 3f 12 f4  |3.3 Circles..?..|
00001950  20 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 0d 01 40  | ============..@|
00001960  04 0d 01 41 1a dd 20 f2  40 43 69 72 63 6c 65 28  |...A.. .@Circle(|
00001970  78 2c 79 2c 72 61 64 69  75 73 29 0d 01 42 1f 20  |x,y,radius)..B. |
00001980  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
00001990  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 01 43 1a 20 f4  |----------..C. .|
000019a0  20 43 69 72 63 6c 65 20  63 65 6e 74 72 65 20 28  | Circle centre (|
000019b0  78 2c 79 29 0d 01 44 06  20 f4 0d 01 45 0f 20 f4  |x,y)..D. ...E. .|
000019c0  20 33 32 20 77 6f 72 64  73 0d 01 46 1f 20 f4 20  | 32 words..F. . |
000019d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000019e0  2d 2d 2d 2d 2d 2d 2d 2d  0d 01 47 20 20 ea 20 5f  |--------..G  . _|
000019f0  61 20 3a 20 5f 61 3d 72  61 64 69 75 73 2a 34 2a  |a : _a=radius*4*|
00001a00  28 b6 32 2d 31 29 2f 33  0d 01 48 16 20 f2 4d 6f  |(.2-1)/3..H. .Mo|
00001a10  76 65 28 78 2c 79 2b 72  61 64 69 75 73 29 0d 01  |ve(x,y+radius)..|
00001a20  49 34 20 f2 42 65 7a 69  65 72 28 78 2b 5f 61 2c  |I4 .Bezier(x+_a,|
00001a30  79 2b 72 61 64 69 75 73  2c 78 2b 72 61 64 69 75  |y+radius,x+radiu|
00001a40  73 2c 79 2b 5f 61 2c 78  2b 72 61 64 69 75 73 2c  |s,y+_a,x+radius,|
00001a50  79 29 0d 01 4a 34 20 f2  42 65 7a 69 65 72 28 78  |y)..J4 .Bezier(x|
00001a60  2b 72 61 64 69 75 73 2c  79 2d 5f 61 2c 78 2b 5f  |+radius,y-_a,x+_|
00001a70  61 2c 79 2d 72 61 64 69  75 73 2c 78 2c 79 2d 72  |a,y-radius,x,y-r|
00001a80  61 64 69 75 73 29 0d 01  4b 34 20 f2 42 65 7a 69  |adius)..K4 .Bezi|
00001a90  65 72 28 78 2d 5f 61 2c  79 2d 72 61 64 69 75 73  |er(x-_a,y-radius|
00001aa0  2c 78 2d 72 61 64 69 75  73 2c 79 2d 5f 61 2c 78  |,x-radius,y-_a,x|
00001ab0  2d 72 61 64 69 75 73 2c  79 29 0d 01 4c 34 20 f2  |-radius,y)..L4 .|
00001ac0  42 65 7a 69 65 72 28 78  2d 72 61 64 69 75 73 2c  |Bezier(x-radius,|
00001ad0  79 2b 5f 61 2c 78 2d 5f  61 2c 79 2b 72 61 64 69  |y+_a,x-_a,y+radi|
00001ae0  75 73 2c 78 2c 79 2b 72  61 64 69 75 73 29 0d 01  |us,x,y+radius)..|
00001af0  4d 13 20 f2 43 6c 6f 73  65 57 69 74 68 4c 69 6e  |M. .CloseWithLin|
00001b00  65 0d 01 4e 06 20 e1 0d  01 4f 04 0d 01 50 19 dd  |e..N. ...O...P..|
00001b10  20 f2 43 69 72 63 6c 65  28 78 2c 79 2c 72 61 64  | .Circle(x,y,rad|
00001b20  69 75 73 29 0d 01 51 1f  20 f4 20 2d 2d 2d 2d 2d  |ius)..Q. . -----|
00001b30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001b40  2d 2d 2d 0d 01 52 1a 20  f4 20 43 69 72 63 6c 65  |---..R. . Circle|
00001b50  20 63 65 6e 74 72 65 20  28 78 2c 79 29 0d 01 53  | centre (x,y)..S|
00001b60  06 20 f4 0d 01 54 0f 20  f4 20 34 34 20 77 6f 72  |. ...T. . 44 wor|
00001b70  64 73 0d 01 55 1f 20 f4  20 2d 2d 2d 2d 2d 2d 2d  |ds..U. . -------|
00001b80  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001b90  2d 0d 01 56 0d 20 ea 20  5f 70 61 74 68 25 0d 01  |-..V. . _path%..|
00001ba0  57 17 20 f2 50 61 74 68  42 65 67 69 6e 28 5f 70  |W. .PathBegin(_p|
00001bb0  61 74 68 25 29 0d 01 58  19 20 f2 40 43 69 72 63  |ath%)..X. .@Circ|
00001bc0  6c 65 28 78 2c 79 2c 72  61 64 69 75 73 29 0d 01  |le(x,y,radius)..|
00001bd0  59 0d 20 f2 50 61 74 68  45 6e 64 0d 01 5a 05 e1  |Y. .PathEnd..Z..|
00001be0  0d 01 5b 04 0d 01 5c 19  dd 20 a4 43 69 72 63 6c  |..[...\.. .Circl|
00001bf0  65 28 78 2c 79 2c 72 61  64 69 75 73 29 0d 01 5d  |e(x,y,radius)..]|
00001c00  1f 20 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. . ------------|
00001c10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 01 5e 1a  |------------..^.|
00001c20  20 f4 20 43 69 72 63 6c  65 20 63 65 6e 74 72 65  | . Circle centre|
00001c30  20 28 78 2c 79 29 0d 01  5f 06 20 f4 0d 01 60 0f  | (x,y).._. ...`.|
00001c40  20 f4 20 34 34 20 77 6f  72 64 73 0d 01 61 1f 20  | . 44 words..a. |
00001c50  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
00001c60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 01 62 0d 20 ea  |----------..b. .|
00001c70  20 5f 70 61 74 68 25 0d  01 63 17 20 f2 50 61 74  | _path%..c. .Pat|
00001c80  68 42 65 67 69 6e 28 5f  70 61 74 68 25 29 0d 01  |hBegin(_path%)..|
00001c90  64 19 20 f2 40 43 69 72  63 6c 65 28 78 2c 79 2c  |d. .@Circle(x,y,|
00001ca0  72 61 64 69 75 73 29 0d  01 65 0d 20 f2 50 61 74  |radius)..e. .Pat|
00001cb0  68 45 6e 64 0d 01 66 0b  3d 5f 70 61 74 68 25 0d  |hEnd..f.=_path%.|
00001cc0  01 67 04 0d 01 68 23 dd  20 f2 40 43 69 72 63 6c  |.g...h#. .@Circl|
00001cd0  65 50 6f 6c 61 72 28 72  2c 74 68 65 74 61 2c 72  |ePolar(r,theta,r|
00001ce0  61 64 69 75 73 29 0d 01  69 26 f2 40 43 69 72 63  |adius)..i&.@Circ|
00001cf0  6c 65 28 72 2a 9b 74 68  65 74 61 2c 72 2a b5 74  |le(r*.theta,r*.t|
00001d00  68 65 74 61 2c 72 61 64  69 75 73 29 0d 01 6a 05  |heta,radius)..j.|
00001d10  e1 0d 01 6b 04 0d 01 6c  22 dd 20 f2 43 69 72 63  |...k...l". .Circ|
00001d20  6c 65 50 6f 6c 61 72 28  72 2c 74 68 65 74 61 2c  |lePolar(r,theta,|
00001d30  72 61 64 69 75 73 29 0d  01 6d 25 f2 43 69 72 63  |radius)..m%.Circ|
00001d40  6c 65 28 72 2a 9b 74 68  65 74 61 2c 72 2a b5 74  |le(r*.theta,r*.t|
00001d50  68 65 74 61 2c 72 61 64  69 75 73 29 0d 01 6e 05  |heta,radius)..n.|
00001d60  e1 0d 01 6f 04 0d 01 70  44 dd 20 a4 43 69 72 63  |...o...pD. .Circ|
00001d70  6c 65 50 6f 6c 61 72 28  72 2c 74 68 65 74 61 2c  |lePolar(r,theta,|
00001d80  72 61 64 69 75 73 29 3d  a4 43 69 72 63 6c 65 28  |radius)=.Circle(|
00001d90  72 2a 9b 74 68 65 74 61  2c 72 2a b5 74 68 65 74  |r*.theta,r*.thet|
00001da0  61 2c 72 61 64 69 75 73  29 0d 01 71 04 0d 01 72  |a,radius)..q...r|
00001db0  21 dd 20 f2 40 41 72 63  28 78 2c 79 2c 72 61 64  |!. .@Arc(x,y,rad|
00001dc0  69 75 73 2c 74 68 65 74  61 2c 70 68 69 29 0d 01  |ius,theta,phi)..|
00001dd0  73 1f 20 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |s. . -----------|
00001de0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 01 74  |-------------..t|
00001df0  19 20 f4 20 41 72 63 20  6f 66 20 61 6e 67 6c 65  |. . Arc of angle|
00001e00  20 74 68 65 74 61 0d 01  75 13 20 f4 20 63 65 6e  | theta..u. . cen|
00001e10  74 72 65 20 28 78 2c 79  29 0d 01 76 06 20 f4 0d  |tre (x,y)..v. ..|
00001e20  01 77 1f 20 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.w. . ----------|
00001e30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 01  |--------------..|
00001e40  78 13 20 74 68 65 74 61  3d 94 74 68 65 74 61 20  |x. theta=.theta |
00001e50  20 0d 01 79 2c 20 ea 20  5f 61 2c 5f 63 2c 5f 78  | ..y, . _a,_c,_x|
00001e60  30 2c 5f 78 31 2c 5f 78  32 2c 5f 78 33 2c 5f 79  |0,_x1,_x2,_x3,_y|
00001e70  30 2c 5f 79 31 2c 5f 79  32 2c 5f 79 33 0d 01 7a  |0,_y1,_y2,_y3..z|
00001e80  2b 20 20 e7 20 74 68 65  74 61 3e 32 2a af 20 8c  |+  . theta>2*. .|
00001e90  20 74 68 65 74 61 2d 3d  32 2a af 2a a8 28 74 68  | theta-=2*.*.(th|
00001ea0  65 74 61 2f 32 2f af 29  0d 01 7b 1f 20 20 e7 20  |eta/2/.)..{.  . |
00001eb0  74 68 65 74 61 3e 32 2a  af 20 8c 20 74 68 65 74  |theta>2*. . thet|
00001ec0  61 2d 3d 32 2a af 20 0d  01 7c 0b 20 c8 8e 20 b9  |a-=2*. ..|. .. .|
00001ed0  20 ca 0d 01 7d 20 20 20  c9 20 74 68 65 74 61 3c  | ...}   . theta<|
00001ee0  3d af 2f 32 20 20 20 3a  20 f2 46 69 72 73 74 41  |=./2   : .FirstA|
00001ef0  72 63 0d 01 7e 3b 20 20  c9 20 74 68 65 74 61 3c  |rc..~;  . theta<|
00001f00  3d af 20 20 20 20 20 3a  20 74 68 65 74 61 3d 74  |=.     : theta=t|
00001f10  68 65 74 61 2f 32 20 3a  20 f2 46 69 72 73 74 41  |heta/2 : .FirstA|
00001f20  72 63 20 3a 20 f2 4e 65  78 74 41 72 63 0d 01 7f  |rc : .NextArc...|
00001f30  47 20 20 c9 20 74 68 65  74 61 3c 3d 33 2a af 2f  |G  . theta<=3*./|
00001f40  32 20 3a 20 74 68 65 74  61 3d 74 68 65 74 61 2f  |2 : theta=theta/|
00001f50  33 20 3a 20 f2 46 69 72  73 74 41 72 63 20 3a 20  |3 : .FirstArc : |
00001f60  f2 4e 65 78 74 41 72 63  20 3a 20 f2 4e 65 78 74  |.NextArc : .Next|
00001f70  41 72 63 20 0d 01 80 07  20 20 7f 0d 01 81 14 20  |Arc ....  ..... |
00001f80  20 20 74 68 65 74 61 3d  74 68 65 74 61 2f 34 0d  |  theta=theta/4.|
00001f90  01 82 33 20 20 20 f2 46  69 72 73 74 41 72 63 20  |..3   .FirstArc |
00001fa0  3a 20 f2 4e 65 78 74 41  72 63 20 3a 20 f2 4e 65  |: .NextArc : .Ne|
00001fb0  78 74 41 72 63 20 3a 20  f2 4e 65 78 74 41 72 63  |xtArc : .NextArc|
00001fc0  20 20 0d 01 83 06 20 cb  0d 01 84 06 20 e1 0d 01  |  .... ..... ...|
00001fd0  85 04 0d 01 86 0f dd 20  f2 46 69 72 73 74 41 72  |....... .FirstAr|
00001fe0  63 0d 01 87 10 20 5f 63  3d 31 2d 9b 74 68 65 74  |c.... _c=1-.thet|
00001ff0  61 0d 01 88 28 20 5f 61  3d 72 61 64 69 75 73 2a  |a...( _a=radius*|
00002000  34 2a 28 b6 28 32 2a 5f  63 29 2d b5 28 74 68 65  |4*(.(2*_c)-.(the|
00002010  74 61 29 29 2f 33 2f 5f  63 0d 01 89 2d 20 5f 78  |ta))/3/_c...- _x|
00002020  30 3d 72 61 64 69 75 73  20 3a 20 5f 79 30 3d 30  |0=radius : _y0=0|
00002030  20 20 3a 20 f2 52 6f 74  28 5f 78 30 2c 5f 79 30  |  : .Rot(_x0,_y0|
00002040  2c 70 68 69 29 20 0d 01  8a 2d 20 5f 78 31 3d 72  |,phi) ...- _x1=r|
00002050  61 64 69 75 73 20 3a 20  5f 79 31 3d 5f 61 20 3a  |adius : _y1=_a :|
00002060  20 f2 52 6f 74 28 5f 78  31 2c 5f 79 31 2c 70 68  | .Rot(_x1,_y1,ph|
00002070  69 29 20 0d 01 8b 2c 20  5f 78 32 3d 72 61 64 69  |i) ..., _x2=radi|
00002080  75 73 20 3a 20 5f 79 32  3d 2d 5f 61 3a 20 f2 52  |us : _y2=-_a: .R|
00002090  6f 74 28 5f 78 32 2c 5f  79 32 2c 70 68 69 29 0d  |ot(_x2,_y2,phi).|
000020a0  01 8c 2c 20 5f 78 33 3d  72 61 64 69 75 73 20 3a  |.., _x3=radius :|
000020b0  20 5f 79 33 3d 30 20 20  3a 20 f2 52 6f 74 28 5f  | _y3=0  : .Rot(_|
000020c0  78 33 2c 5f 79 33 2c 70  68 69 29 0d 01 8d 18 20  |x3,_y3,phi).... |
000020d0  f2 52 6f 74 28 5f 78 32  2c 5f 79 32 2c 74 68 65  |.Rot(_x2,_y2,the|
000020e0  74 61 29 0d 01 8e 18 20  f2 52 6f 74 28 5f 78 33  |ta).... .Rot(_x3|
000020f0  2c 5f 79 33 2c 74 68 65  74 61 29 0d 01 8f 17 20  |,_y3,theta).... |
00002100  f2 4d 6f 76 65 28 78 2b  5f 78 30 2c 79 2b 5f 79  |.Move(x+_x0,y+_y|
00002110  30 29 0d 01 90 31 20 f2  42 65 7a 69 65 72 28 78  |0)...1 .Bezier(x|
00002120  2b 5f 78 31 2c 79 2b 5f  79 31 2c 78 2b 5f 78 32  |+_x1,y+_y1,x+_x2|
00002130  2c 79 2b 5f 79 32 2c 78  2b 5f 78 33 2c 79 2b 5f  |,y+_y2,x+_x3,y+_|
00002140  79 33 29 0d 01 91 05 e1  0d 01 92 04 0d 01 93 0e  |y3).............|
00002150  dd 20 f2 4e 65 78 74 41  72 63 0d 01 94 1a 20 20  |. .NextArc....  |
00002160  20 f2 52 6f 74 28 5f 78  30 2c 5f 79 30 2c 74 68  | .Rot(_x0,_y0,th|
00002170  65 74 61 29 0d 01 95 1a  20 20 20 f2 52 6f 74 28  |eta)....   .Rot(|
00002180  5f 78 31 2c 5f 79 31 2c  74 68 65 74 61 29 0d 01  |_x1,_y1,theta)..|
00002190  96 1a 20 20 20 f2 52 6f  74 28 5f 78 32 2c 5f 79  |..   .Rot(_x2,_y|
000021a0  32 2c 74 68 65 74 61 29  0d 01 97 1a 20 20 20 f2  |2,theta)....   .|
000021b0  52 6f 74 28 5f 78 33 2c  5f 79 33 2c 74 68 65 74  |Rot(_x3,_y3,thet|
000021c0  61 29 0d 01 98 33 20 20  20 f2 42 65 7a 69 65 72  |a)...3   .Bezier|
000021d0  28 78 2b 5f 78 31 2c 79  2b 5f 79 31 2c 78 2b 5f  |(x+_x1,y+_y1,x+_|
000021e0  78 32 2c 79 2b 5f 79 32  2c 78 2b 5f 78 33 2c 79  |x2,y+_y2,x+_x3,y|
000021f0  2b 5f 79 33 29 0d 01 99  06 e1 20 0d 01 9a 04 0d  |+_y3)..... .....|
00002200  01 9b 19 dd 20 f2 52 6f  74 28 f8 20 78 2c f8 20  |.... .Rot(. x,. |
00002210  79 2c 74 68 65 74 61 29  0d 01 9c 26 ea 20 5f 58  |y,theta)...&. _X|
00002220  2c 5f 63 2c 5f 73 20 3a  20 5f 63 3d 9b 74 68 65  |,_c,_s : _c=.the|
00002230  74 61 20 3a 20 5f 73 3d  b5 74 68 65 74 61 0d 01  |ta : _s=.theta..|
00002240  9d 25 5f 58 3d 5f 63 2a  78 2d 5f 73 2a 79 20 3a  |.%_X=_c*x-_s*y :|
00002250  20 79 3d 5f 73 2a 78 2b  5f 63 2a 79 20 3a 20 78  | y=_s*x+_c*y : x|
00002260  3d 5f 58 0d 01 9e 05 e1  0d 01 9f 04 0d 01 a0 20  |=_X............ |
00002270  dd 20 a4 41 72 63 28 78  2c 79 2c 72 61 64 69 75  |. .Arc(x,y,radiu|
00002280  73 2c 74 68 65 74 61 2c  70 68 69 29 0d 01 a1 0b  |s,theta,phi)....|
00002290  ea 20 5f 70 61 74 68 0d  01 a2 15 f2 50 61 74 68  |. _path.....Path|
000022a0  42 65 67 69 6e 28 5f 70  61 74 68 29 0d 01 a3 1f  |Begin(_path)....|
000022b0  f2 40 41 72 63 28 78 2c  79 2c 72 61 64 69 75 73  |.@Arc(x,y,radius|
000022c0  2c 74 68 65 74 61 2c 70  68 69 29 0d 01 a4 0c f2  |,theta,phi).....|
000022d0  50 61 74 68 45 6e 64 0d  01 a5 0a 3d 5f 70 61 74  |PathEnd....=_pat|
000022e0  68 0d 01 a6 04 0d 01 a7  20 dd 20 f2 41 72 63 28  |h....... . .Arc(|
000022f0  78 2c 79 2c 72 61 64 69  75 73 2c 74 68 65 74 61  |x,y,radius,theta|
00002300  2c 70 68 69 29 0d 01 a8  0b ea 20 5f 70 61 74 68  |,phi)..... _path|
00002310  0d 01 a9 24 5f 70 61 74  68 3d a4 41 72 63 28 78  |...$_path=.Arc(x|
00002320  2c 79 2c 72 61 64 69 75  73 2c 74 68 65 74 61 2c  |,y,radius,theta,|
00002330  70 68 69 29 0d 01 aa 05  e1 0d 01 ab 04 0d 01 ac  |phi)............|
00002340  24 dd 20 f2 40 53 65 63  74 6f 72 28 78 2c 79 2c  |$. .@Sector(x,y,|
00002350  72 61 64 69 75 73 2c 74  68 65 74 61 2c 70 68 69  |radius,theta,phi|
00002360  29 0d 01 ad 1f 20 f4 20  2d 2d 2d 2d 2d 2d 2d 2d  |).... . --------|
00002370  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002380  0d 01 ae 1c 20 f4 20 53  65 63 74 6f 72 20 6f 66  |.... . Sector of|
00002390  20 61 6e 67 6c 65 20 74  68 65 74 61 0d 01 af 13  | angle theta....|
000023a0  20 f4 20 63 65 6e 74 72  65 20 28 78 2c 79 29 0d  | . centre (x,y).|
000023b0  01 b0 06 20 f4 0d 01 b1  1f 20 f4 20 2d 2d 2d 2d  |... ..... . ----|
000023c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000023d0  2d 2d 2d 2d 0d 01 b2 20  20 f2 40 41 72 63 28 78  |----...  .@Arc(x|
000023e0  2c 79 2c 72 61 64 69 75  73 2c 74 68 65 74 61 2c  |,y,radius,theta,|
000023f0  70 68 69 29 0d 01 b3 0f  20 f2 44 72 61 77 28 78  |phi).... .Draw(x|
00002400  2c 79 29 0d 01 b4 13 20  f2 43 6c 6f 73 65 57 69  |,y).... .CloseWi|
00002410  74 68 4c 69 6e 65 0d 01  b5 05 e1 0d 01 b6 04 0d  |thLine..........|
00002420  01 b7 23 dd 20 a4 53 65  63 74 6f 72 28 78 2c 79  |..#. .Sector(x,y|
00002430  2c 72 61 64 69 75 73 2c  74 68 65 74 61 2c 70 68  |,radius,theta,ph|
00002440  69 29 0d 01 b8 0b ea 20  5f 70 61 74 68 0d 01 b9  |i)..... _path...|
00002450  15 f2 50 61 74 68 42 65  67 69 6e 28 5f 70 61 74  |..PathBegin(_pat|
00002460  68 29 0d 01 ba 22 f2 40  53 65 63 74 6f 72 28 78  |h)...".@Sector(x|
00002470  2c 79 2c 72 61 64 69 75  73 2c 74 68 65 74 61 2c  |,y,radius,theta,|
00002480  70 68 69 29 0d 01 bb 0c  f2 50 61 74 68 45 6e 64  |phi).....PathEnd|
00002490  0d 01 bc 0a 3d 5f 70 61  74 68 0d 01 bd 04 0d 01  |....=_path......|
000024a0  be 23 dd 20 f2 53 65 63  74 6f 72 28 78 2c 79 2c  |.#. .Sector(x,y,|
000024b0  72 61 64 69 75 73 2c 74  68 65 74 61 2c 70 68 69  |radius,theta,phi|
000024c0  29 0d 01 bf 0b ea 20 5f  70 61 74 68 0d 01 c0 27  |)..... _path...'|
000024d0  5f 70 61 74 68 3d a4 53  65 63 74 6f 72 28 78 2c  |_path=.Sector(x,|
000024e0  79 2c 72 61 64 69 75 73  2c 74 68 65 74 61 2c 70  |y,radius,theta,p|
000024f0  68 69 29 0d 01 c1 05 e1  0d 01 c2 04 0d 01 c3 04  |hi).............|
00002500  0d 01 c4 13 f4 20 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |..... ==========|
00002510  3d 3d 3d 0d 01 c5 12 f4  20 33 2e 35 20 45 6c 6c  |===..... 3.5 Ell|
00002520  69 70 73 65 73 0d 01 c6  13 f4 20 3d 3d 3d 3d 3d  |ipses..... =====|
00002530  3d 3d 3d 3d 3d 3d 3d 3d  0d 01 c7 04 0d 01 c8 18  |========........|
00002540  dd 20 f2 40 45 6c 6c 69  70 73 65 28 78 2c 79 2c  |. .@Ellipse(x,y,|
00002550  41 2c 42 29 0d 01 c9 1f  20 f4 20 2d 2d 2d 2d 2d  |A,B).... . -----|
00002560  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002570  2d 2d 2d 0d 01 ca 20 20  f4 20 45 6c 6c 69 70 73  |---...  . Ellips|
00002580  65 20 28 78 2f 41 29 5e  32 2b 28 79 2f 42 29 5e  |e (x/A)^2+(y/B)^|
00002590  32 3d 31 0d 01 cb 06 20  f4 0d 01 cc 0f 20 f4 20  |2=1.... ..... . |
000025a0  33 32 20 77 6f 72 64 73  0d 01 cd 1f 20 f4 20 2d  |32 words.... . -|
000025b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000025c0  2d 2d 2d 2d 2d 2d 2d 0d  01 ce 19 20 ea 20 61 5f  |-------.... . a_|
000025d0  20 3a 20 61 5f 3d 34 2a  28 b6 32 2d 31 29 2f 33  | : a_=4*(.2-1)/3|
000025e0  0d 01 cf 11 20 f2 4d 6f  76 65 28 78 2c 79 2b 42  |.... .Move(x,y+B|
000025f0  29 0d 01 d0 29 20 f2 42  65 7a 69 65 72 28 78 2b  |)...) .Bezier(x+|
00002600  61 5f 2a 41 2c 79 2b 42  2c 78 2b 41 2c 79 2b 61  |a_*A,y+B,x+A,y+a|
00002610  5f 2a 42 2c 78 2b 41 2c  79 29 0d 01 d1 29 20 f2  |_*B,x+A,y)...) .|
00002620  42 65 7a 69 65 72 28 78  2b 41 2c 79 2d 61 5f 2a  |Bezier(x+A,y-a_*|
00002630  42 2c 78 2b 61 5f 2a 41  2c 79 2d 42 2c 78 2c 79  |B,x+a_*A,y-B,x,y|
00002640  2d 42 29 0d 01 d2 29 20  f2 42 65 7a 69 65 72 28  |-B)...) .Bezier(|
00002650  78 2d 61 5f 2a 41 2c 79  2d 42 2c 78 2d 41 2c 79  |x-a_*A,y-B,x-A,y|
00002660  2d 61 5f 2a 42 2c 78 2d  41 2c 79 29 0d 01 d3 29  |-a_*B,x-A,y)...)|
00002670  20 f2 42 65 7a 69 65 72  28 78 2d 41 2c 79 2b 61  | .Bezier(x-A,y+a|
00002680  5f 2a 42 2c 78 2d 61 5f  2a 41 2c 79 2b 42 2c 78  |_*B,x-a_*A,y+B,x|
00002690  2c 79 2b 42 29 0d 01 d4  13 20 f2 43 6c 6f 73 65  |,y+B).... .Close|
000026a0  57 69 74 68 4c 69 6e 65  0d 01 d5 06 20 e1 0d 01  |WithLine.... ...|
000026b0  d6 04 0d 01 d7 17 dd 20  f2 45 6c 6c 69 70 73 65  |....... .Ellipse|
000026c0  28 78 2c 79 2c 41 2c 42  29 0d 01 d8 1f 20 f4 20  |(x,y,A,B).... . |
000026d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000026e0  2d 2d 2d 2d 2d 2d 2d 2d  0d 01 d9 20 20 f4 20 45  |--------...  . E|
000026f0  6c 6c 69 70 73 65 20 28  78 2f 41 29 5e 32 2b 28  |llipse (x/A)^2+(|
00002700  79 2f 42 29 5e 32 3d 31  0d 01 da 06 20 f4 0d 01  |y/B)^2=1.... ...|
00002710  db 0f 20 f4 20 34 34 20  77 6f 72 64 73 0d 01 dc  |.. . 44 words...|
00002720  1f 20 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. . ------------|
00002730  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 01 dd 0d  |------------....|
00002740  20 ea 20 5f 70 61 74 68  25 0d 01 de 17 20 f2 50  | . _path%.... .P|
00002750  61 74 68 42 65 67 69 6e  28 5f 70 61 74 68 25 29  |athBegin(_path%)|
00002760  0d 01 df 17 20 f2 40 45  6c 6c 69 70 73 65 28 78  |.... .@Ellipse(x|
00002770  2c 79 2c 41 2c 42 29 0d  01 e0 0d 20 f2 50 61 74  |,y,A,B).... .Pat|
00002780  68 45 6e 64 0d 01 e1 05  e1 0d 01 e2 04 0d 01 e3  |hEnd............|
00002790  17 dd 20 a4 45 6c 6c 69  70 73 65 28 78 2c 79 2c  |.. .Ellipse(x,y,|
000027a0  41 2c 42 29 0d 01 e4 1f  20 f4 20 2d 2d 2d 2d 2d  |A,B).... . -----|
000027b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000027c0  2d 2d 2d 0d 01 e5 20 20  f4 20 45 6c 6c 69 70 73  |---...  . Ellips|
000027d0  65 20 28 78 2f 41 29 5e  32 2b 28 79 2f 42 29 5e  |e (x/A)^2+(y/B)^|
000027e0  32 3d 31 0d 01 e6 06 20  f4 0d 01 e7 0f 20 f4 20  |2=1.... ..... . |
000027f0  34 34 20 77 6f 72 64 73  0d 01 e8 1f 20 f4 20 2d  |44 words.... . -|
00002800  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002810  2d 2d 2d 2d 2d 2d 2d 0d  01 e9 0d 20 ea 20 5f 70  |-------.... . _p|
00002820  61 74 68 25 0d 01 ea 17  20 f2 50 61 74 68 42 65  |ath%.... .PathBe|
00002830  67 69 6e 28 5f 70 61 74  68 25 29 0d 01 eb 17 20  |gin(_path%).... |
00002840  f2 40 45 6c 6c 69 70 73  65 28 78 2c 79 2c 41 2c  |.@Ellipse(x,y,A,|
00002850  42 29 0d 01 ec 0d 20 f2  50 61 74 68 45 6e 64 0d  |B).... .PathEnd.|
00002860  01 ed 0b 3d 5f 70 61 74  68 25 0d 01 ee 04 0d 01  |...=_path%......|
00002870  ef 10 f4 20 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 0d 01  |... ==========..|
00002880  f0 0f f4 20 33 2e 36 20  43 72 6f 73 73 0d 01 f1  |... 3.6 Cross...|
00002890  10 f4 20 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 0d 01 f2  |.. ==========...|
000028a0  04 0d 01 f3 1f dd 20 f2  40 43 72 6f 73 73 28 78  |...... .@Cross(x|
000028b0  2c 79 2c 77 69 64 74 68  2c 68 65 69 67 68 74 29  |,y,width,height)|
000028c0  0d 01 f4 1f 20 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.... . ---------|
000028d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
000028e0  01 f5 23 20 f4 20 43 72  6f 73 73 20 63 6e 74 72  |..# . Cross cntr|
000028f0  65 20 78 2c 79 2c 77 69  64 74 68 2c 68 65 69 67  |e x,y,width,heig|
00002900  68 74 0d 01 f6 06 20 f4  0d 01 f7 1f 20 f4 20 2d  |ht.... ..... . -|
00002910  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002920  2d 2d 2d 2d 2d 2d 2d 0d  01 f8 1f 20 f2 40 48 4c  |-------.... .@HL|
00002930  69 6e 65 28 78 2d 77 69  64 74 68 2f 32 2c 79 2c  |ine(x-width/2,y,|
00002940  77 69 64 74 68 29 0d 01  f9 21 20 f2 40 56 4c 69  |width)...! .@VLi|
00002950  6e 65 28 78 2c 79 2d 68  65 69 67 68 74 2f 32 2c  |ne(x,y-height/2,|
00002960  68 65 69 67 68 74 29 0d  01 fa 06 20 e1 0d 01 fb  |height).... ....|
00002970  04 0d 01 fc 1e dd 20 f2  43 72 6f 73 73 28 78 2c  |...... .Cross(x,|
00002980  79 2c 77 69 64 74 68 2c  68 65 69 67 68 74 29 0d  |y,width,height).|
00002990  01 fd 1f 20 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |... . ----------|
000029a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 01  |--------------..|
000029b0  fe 24 20 f4 20 43 72 6f  73 73 20 63 65 6e 74 72  |.$ . Cross centr|
000029c0  65 20 78 2c 79 2c 77 69  64 74 68 2c 68 65 69 67  |e x,y,width,heig|
000029d0  68 74 0d 01 ff 06 20 f4  0d 02 00 1f 20 f4 20 2d  |ht.... ..... . -|
000029e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000029f0  2d 2d 2d 2d 2d 2d 2d 0d  02 01 0d 20 ea 20 5f 70  |-------.... . _p|
00002a00  61 74 68 25 0d 02 02 17  20 f2 50 61 74 68 42 65  |ath%.... .PathBe|
00002a10  67 69 6e 28 5f 70 61 74  68 25 29 0d 02 03 1e 20  |gin(_path%).... |
00002a20  f2 40 43 72 6f 73 73 28  78 2c 79 2c 77 69 64 74  |.@Cross(x,y,widt|
00002a30  68 2c 68 65 69 67 68 74  29 0d 02 04 0d 20 f2 50  |h,height).... .P|
00002a40  61 74 68 45 6e 64 0d 02  05 05 e1 0d 02 06 04 0d  |athEnd..........|
00002a50  02 07 1e dd 20 a4 43 72  6f 73 73 28 78 2c 79 2c  |.... .Cross(x,y,|
00002a60  77 69 64 74 68 2c 68 65  69 67 68 74 29 0d 02 08  |width,height)...|
00002a70  1f 20 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. . ------------|
00002a80  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 02 09 24  |------------...$|
00002a90  20 f4 20 43 72 6f 73 73  20 63 65 6e 74 72 65 20  | . Cross centre |
00002aa0  78 2c 79 2c 77 69 64 74  68 2c 68 65 69 67 68 74  |x,y,width,height|
00002ab0  0d 02 0a 06 20 f4 0d 02  0b 1f 20 f4 20 2d 2d 2d  |.... ..... . ---|
00002ac0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002ad0  2d 2d 2d 2d 2d 0d 02 0c  0d 20 ea 20 5f 70 61 74  |-----.... . _pat|
00002ae0  68 25 0d 02 0d 17 20 f2  50 61 74 68 42 65 67 69  |h%.... .PathBegi|
00002af0  6e 28 5f 70 61 74 68 25  29 0d 02 0e 1e 20 f2 40  |n(_path%).... .@|
00002b00  43 72 6f 73 73 28 78 2c  79 2c 77 69 64 74 68 2c  |Cross(x,y,width,|
00002b10  68 65 69 67 68 74 29 0d  02 0f 0d 20 f2 50 61 74  |height).... .Pat|
00002b20  68 45 6e 64 0d 02 10 0b  3d 5f 70 61 74 68 25 0d  |hEnd....=_path%.|
00002b30  02 11 04 0d 02 12 04 0d  ff                       |.........|
00002b39