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 |
Duplicates
There are 5 duplicate copies of this file in the archive:
- Archimedes archive » Archimedes World » AW-1995-03-Disc1.adf » Disk1Mar95 » !AWMar95/Goodies/DrawBasic/!DrawBasic/Resources/Figures
- Archimedes archive » Archimedes World » AW-1995-04-Disc1.adf » Disk1Apr95 » !AWApr95/Goodies/Draw/!DrawBasic/Resources/Figures
- Archimedes archive » Archimedes World » AW-1994-12-Disc1.adf » Disk1Dec94 » !AWDec94/Goodies/DrawBasic/!DrawBasic/Resources/Figures
- Archimedes archive » Archimedes World » AW-1995-01-Disc1.adf » Disk1Jan95 » !AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Figures
- Archimedes archive » Archimedes World » AW-1995-05-Disc1.adf » AWMay95_1 » InTheMag/DrawBasic/!DrawBasic/Resources/Figures
- Archimedes archive » Archimedes World » AW-1995-02-Disc1.adf » Disk1Feb95 » !AWFeb95/Goodies/DrawBasic/!DrawBasic/Resources/Figures
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