Home » Archimedes archive » Archimedes World » AW-1995-03-Disc1.adf » Disk1Mar95 » !AWMar95/Goodies/DrawBasic/!DrawBasic/Resources/Calculus/Graphs
!AWMar95/Goodies/DrawBasic/!DrawBasic/Resources/Calculus/Graphs
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-03-Disc1.adf » Disk1Mar95 |
Filename: | !AWMar95/Goodies/DrawBasic/!DrawBasic/Resources/Calculus/Graphs |
Read OK: | ✔ |
File size: | 3683 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/Calculus/Graphs
- Archimedes archive » Archimedes World » AW-1995-04-Disc1.adf » Disk1Apr95 » !AWApr95/Goodies/Draw/!DrawBasic/Resources/Calculus/Graphs
- Archimedes archive » Archimedes World » AW-1994-12-Disc1.adf » Disk1Dec94 » !AWDec94/Goodies/DrawBasic/!DrawBasic/Resources/Calculus/Graphs
- Archimedes archive » Archimedes World » AW-1995-01-Disc1.adf » Disk1Jan95 » !AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Calculus/Graphs
- Archimedes archive » Archimedes World » AW-1995-05-Disc1.adf » AWMay95_1 » InTheMag/DrawBasic/!DrawBasic/Resources/Calculus/Graphs
- Archimedes archive » Archimedes World » AW-1995-02-Disc1.adf » Disk1Feb95 » !AWFeb95/Goodies/DrawBasic/!DrawBasic/Resources/Calculus/Graphs
File contents
1REM > DrawBasic:Resources.Calculus.Graphs 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 CALCULUS 17REM 18REM ********************** 19 20REM ================ 21REM Data points 22REM ================ 23 24DEF PROCMatRead(data()) 25LOCAL _i%,_j% 26CASE DIM(data()) OF 27WHEN 1 28 FOR _i%=1 TO DIM(data(),1) : READ data(_i%) : NEXT 29WHEN 2 30 FOR _i%=1 TO DIM(data(),1) 31 FOR _j%=1 TO DIM(data(),2) 32 READ data(_i%,_j%) 33 NEXT 34 NEXT 35ENDCASE 36ENDPROC 37 38DEF PROCMaxMin(data(),RETURN min, RETURN max) 39LOCAL _i%,_j% 40min=2^30 : max=-(2^30) 41CASE DIM(data()) OF 42WHEN 1 43 FOR _i%=1 TO DIM(data(),1) 44 IF min>data(_i%) THEN min=data(_i%) 45 IF max<data(_i%) THEN max=data(_i%) 46 NEXT 47WHEN 2 48 FOR _i%=1 TO DIM(data(),1) 49 FOR _j%=1 TO DIM(data(),2) 50 IF min>data(_i%,_j%) THEN min=data(_i%,_j%) 51 IF max<data(_i%,_j%) THEN max=data(_i%,_j%) 52 NEXT 53 NEXT 54ENDCASE 55ENDPROC 56 57REM ========================== 58REM Pie chart of data points 59REM ========================== 60 61DEF PROCPie(data()) 62CASE DIM(data()) OF 63 WHEN 1 : PROCPie_1(data()) 64 WHEN 2 : PROCPie_2(data()) 65ENDCASE 66ENDPROC 67 68DEF PROCPie_1(data()) 69LOCAL _i%,_n%,_angle,_theta,_sum,_radius,_sector,_x,_y,_xc,_yc 70_n%=DIM(data(),1) 71FOR _i%=1 TO _n% : _sum+=data(_i%) :NEXT 72IF _sum>0 THEN 73 _angle=2*PI/_sum : _theta=0 : _col%=7 74 ELSE 75 ERROR 0, "Negative or Zero total in pie chart" 76 ENDIF 77 PROCFrameCoords(0,FNFRAME_Width,0,FNFRAME_Height) 78 _xc=FNFRAME_Width/2 : _yc=FNFRAME_Height/2 79 IF _xc<_yc THEN _radius=_xc ELSE _radius=_yc 80 _radius=_radius*FNScreenSize 81FOR _i%=1 TO _n% 82 _sector=FNSector(_xc,_yc,_radius,_angle*data(_i%),_theta) 83 _col%+=1 : _col%=_col% MOD 16 84 PROCFill@(_sector,_col%) 85 PROCDrawPath(_sector) 86 _x=_xc+_radius*1.1*COS(_angle*data(_i%)/2+_theta) 87 _y=_yc+_radius*1.1*SIN(_angle*data(_i%)/2+_theta) 88 PROCPrint(STR$(data(_i%)),_x,_y) 89 _theta+=_angle*data(_i%) 90 NEXT 91ENDPROC 92 93DEF PROCPie_2(data()) 94LOCAL _i%,_j%,_m%,_n%,_angle,_theta,_sum,_radius,_sector,_x,_y,_xc,_yc,_p% 95_p%=INT(21*256*180/2.54+.5)-FNFrame_x : _p%=_p% DIV FNFrame_Width 96_n%=DIM(data(),2) 97PROCFrameCoords(0,FNFRAME_Width,0,FNFRAME_Height) 98_xc=FNFRAME_Width/2 : _yc=FNFRAME_Height/2 99 IF _xc<_yc THEN _radius=_xc ELSE _radius=_yc 100 _radius=_radius*FNScreenSize 101FOR _j%=1 TO DIM(data(),1) 102_sum=0 103FOR _i%=1 TO _n% : _sum+=data(_j%,_i%) :NEXT 104IF _sum>0 THEN 105 _angle=2*PI/_sum : _theta=0 : _col%=7 106 ELSE 107 ERROR 0, "Negative or Zero total in pie chart" 108 ENDIF 109FOR _i%=1 TO _n% 110 _sector=FNSector(_xc,_yc,_radius,_angle*data(_j%,_i%),_theta) 111 _col%+=1 : _col%=_col% MOD 16 112 PROCFill@(_sector,_col%) 113 PROCDrawPath(_sector) 114 _x=_xc+_radius*1.1*COS(_angle*data(_j%,_i%)/2+_theta) 115 _y=_yc+_radius*1.1*SIN(_angle*data(_j%,_i%)/2+_theta) 116 PROCPrint(STR$(data(_j%,_i%)),_x,_y) 117 _theta+=_angle*data(_j%,_i%) 118 NEXT 119PROCPrint("Table "+STR$_j%,_xc-_radius,0) 120PROCFrameSize((_j% MOD _p%)*FNFRAME_Width,(_j% DIV _p%)*FNFRAME_Height,FNFRAME_Width,FNFRAME_Height) 121NEXT 122ENDPROC 123 124REM ========================== 125REM Bar charts of data points 126REM ========================== 127 128DEF PROCBarChart(data()) 129 PROCHistogram(data(),.25) 130 ENDPROC 131 132DEF PROCHistogram(data(),gap) 133LOCAL _b%,_u,_v,_i%,_j%,_bar,_width,_col% 134 _b%=DIM(data(),1) : _width=(1-gap) 135 PROCMaxMin(data(),_u,_v) : IF _u>0 THEN _u=0 136 PROCReduceFrameSize(FNScreenSize) 137 PROCScreen(0,_b%,_u,_v) 138 PROCAxesScale(_b%,0,FNBarScalesLarge,FNBarScalesSmall) 139 CASE DIM(data()) OF 140 WHEN 1 141 FOR _i%=1 TO _b% 142 _bar=FNRectangle(_i%-1,0,_width,data(_i%)) 143 PROCFill@(_bar,FNRed) 144 PROCDrawPath(_bar) 145 NEXT 146 WHEN 2 147 _col%=7 148 FOR _i%=1 TO _b% 149 _col%+=1 150 FOR _j%=1 TO DIM(data(),2) 151 _bar=FNRectangle(_j%-1+(_i%-1)*_width/DIM(data(),1)/2,0,_width/2,data(_i%,_j%)) 152 PROCFill@(_bar,_col%) 153 PROCDrawPath(_bar) 154 NEXT 155 NEXT 156 ENDCASE 157ENDPROC 158 159 160REM ========================== 161REM Point plot of data points 162REM ========================== 163 164DEF FNPlot(data(),x%,y%) 165LOCAL _path 166PROCPathBegin(_path) 167PROC@Plot(data(),ABSx%,ABSy%) 168PROCPathEnd 169=_path 170 171DEF PROCPlot(data(),x%,y%) 172LOCAL _path,_y% 173CASE y% OF 174 WHEN TRUE 175 FOR _y%=1 TO DIM(data(),2) 176 IF x%<>_y% THEN 177 PROCSymbol(FNSymbolType+(_y% MOD 10),FNPointSize) 178 _path=FNPlot(data(),x%,_y%) 179 PROCFill@(_path,FNDesktopColour(7+ (_y% MOD 8))) 180 PROCDrawPath(_path) 181 ENDIF 182 NEXT 183 OTHERWISE 184 _path=FNPlot(data(),x%,y%) 185 PROCFill@(_path,FNFillColour) 186 PROCDrawPath(_path) 187ENDCASE 188ENDPROC 189 190DEF PROC@Plot(data(),x%,y%) 191LOCAL _i% 192FOR _i%=1 TO DIM(data(),1) 193 PROC@Point(data(_i%,x%),data(_i%,y%)) 194 NEXT 195ENDPROC 196 197REM ========================== 198REM Line plot of data points 199REM ========================== 200 201DEF FNLinePlot(data(),x%,y%) 202LOCAL _path 203PROCPathBegin(_path) 204PROC@LinePlot(data(),ABSx%,ABSy%) 205PROCPathEnd 206=_path 207 208DEF PROCLinePlot(data(),x%,y%) 209LOCAL _path,_y% 210CASE y% OF 211 WHEN TRUE 212 FOR _y%=1 TO DIM(data(),2) 213 IF x%<>_y% THEN _path=FNLinePlot(data(),x%,_y%) 214 NEXT 215 OTHERWISE 216 _path=FNLinePlot(data(),x%,y%) 217ENDCASE 218ENDPROC 219 220DEF PROC@LinePlot(data(),x%,y%) 221LOCAL _i%,_x,_y 222FOR _i%=1 TO DIM(data(),1) 223 _x=data(_i%,x%) : _y=data(_i%,y%) 224 IF _i%=1 THEN PROCMove(_x,_y) ELSE PROCDraw(_x,_y) 225 NEXT 226PROCClosePlot(data(),x%,y%) 227ENDPROC 228 229DEF PROCClosePlot(data(),x%,y%) 230LOCAL closed%,n% 231n%=DIM(data(),1) 232closed%=ABS(data(0,x%)-data(n%,x%))*FNX_Scale<1 233closed%=closed% AND ABS(data(0,y%)=data(n%,y%))<FNEpsilon 234IF closed%THEN PROCCloseWithLine 235ENDPROC 236 237 238REM ========================== 239REM Graphs of data 240REM ========================== 241 242DEF FNGraphPlot(data(),x%,y%) 243LOCAL _path 244 PROCPathBegin(_path) 245 PROC@GraphPlot(data(),ABSx%,ABSy%) 246 PROCPathEnd 247=_path 248 249DEF PROCGraphPlot(data(),x%,y%) 250LOCAL _path 251CASE y% OF 252 WHEN TRUE 253 FOR _y%=1 TO DIM(data(),2) 254 IF x%<>_y% THEN _path=FNGraphPlot(data(),x%,_y%) 255 NEXT 256 OTHERWISE 257 _path=FNGraphPlot(data(),x%,y%) 258ENDCASE 259ENDPROC 260 261DEF PROC@GraphPlot(data(),x%,y%) 262LOCAL _i%,_x,_y,_X,_Y,_Mx,_My,_mx,_my 263FOR _i%=1 TO DIM(data(),1) 264 _x=data(_i%,x%) : _y=data(_i%,y%) 265 IF _i%=1 THEN 266 PROCMove(_x,_y) 267 PROCSlope(data(),x%,y%,_i%,_mx,_my,2) : _X=_x : _Y=_y 268 ELSE 269 _Mx=_mx : _My=_my 270 PROCSlope(data(),x%,y%,_i%,_mx,_my,2) 271 PROCBezier(_X+_Mx/3,_Y+_My/3,_x-_mx/3,_y-_my/3,_x,_y) 272 _X=_x : _Y=_y 273 ENDIF 274 NEXT 275 PROCClosePlot(data(),x%,y%) 276ENDPROC 277 278DEF PROCSlope(data(),x%,y%,i%,RETURN mx,RETURN my,type%) 279LOCAL n%,dx,dy,Dx,j%,k%,h,H,closed% : n%=DIM(data(),1) 280closed%=(ABS(data(0,x%)-data(n%,x%))*FNX_Scale)<1 281closed%=closed% AND (ABS(data(0,y%)=data(n%,y%))*FNY_Scale)<1 282CASE i% OF 283 WHEN 1 284 Dx=data(2,x%)-data(1,x%) : Dy=data(2,y%)-data(1,y%) 285 IF closed% THEN 286 dx=data(1,x%)-data(n%-1,x%) : dy=data(1,y%)-data(n%-1,y%) 287 ELSE 288 dx=Dx : dy=Dy 289 ENDIF 290 WHEN n% 291 dx=data(n%,x%)-data(n%-1,x%) : dy=data(n%,y%)-data(n%-1,y%) 292 IF closed% THEN 293 Dx=data(1,x%)-data(n%,x%) : Dy=data(1,y%)-data(n%,y%) 294 ELSE 295 Dx=dx : Dy=dy 296 ENDIF 297 OTHERWISE 298 Dx=data(i%+1,x%)-data(i%,x%) : Dy=data(i%+1,y%)-data(i%,y%) 299 dx=data(i%,x%)-data(i%-1,x%) : dy=data(i%,y%)-data(i%-1,y%) 300ENDCASE 301CASE type% OF 302WHEN 2 303 IF dx*Dx>0 THEN mx=2*dx*Dx/(dx+Dx) ELSE mx=0 304 IF dy*Dy>0 THEN my=2*dy*Dy/(dy+Dy) ELSE my=0 305WHEN 3 306 h=SQR(dx*dx+dy*dy) : H=SQR(Dx*Dx+Dy*Dy) 307 mx=(H*dx/h+h*Dx/H)/(h+H) : my=(H*dy/h+h*Dy/H)/(h+H) 308ENDCASE 309ENDPROC 310 311REM ========================== 312REM Graphs of Functions 313REM ========================== 314 315DEF PROCGraph(f$,n%) 316LOCAL _path,_a,_b,_u,_v 317PROCGetFrameCoords(_a,_b,_u,_v) 318PROCPathBegin(_path) 319PROC@Graph(f$,_a,_b,n%) 320PROCPathEnd 321ENDPROC 322 323DEF FNGraph(f$,a,b,n%) 324LOCAL _path 325PROCPathBegin(_path) 326PROC@Graph(f$,a,b,n%) 327PROCPathEnd 328=_path 329 330DEF PROC@Graph(f$,a,b,n%) 331LOCAL _eps,_h_min,_h_max,x,_h,_y,_X,_Y,_undefined% 332_eps=FNEpsilon 333_h_max=(b-a)/FNMinNoofPoints 334_h_min=(b-a)/FNMaxNoofPoints 335IF n%<=0 THEN _h=_h_max ELSE _h=(b-a)/n% 336x=a-_h 337LOCAL ERROR 338ON ERROR LOCAL 339_undefined%=TRUE 340IF n%<=0 THEN _h=_h_max ELSE _h=(b-a)/n% 341IF ERR=17 OR x>=b THEN ENDPROC 342REPEAT 343 x+=_h : IF x>b THEN x=b 344 _y=EVALf$ 345 CASE _undefined% OF 346 WHEN TRUE 347 _X=x : _Y=_y 348 IF FNInFrame(x,_y) THEN 349 PROCMove(x,_y) : _undefined%=FALSE 350 ELSE 351 _X=x : _Y=_y 352 ENDIF 353 OTHERWISE : 354 IF n%<=0 AND x<b THEN PROCDraw_ControlLinearStep 355 PROCDrawClip(_X,_Y,x,_y) 356 ENDCASE 357UNTIL x>=b 358RESTORE ERROR 359ENDPROC 360 361DEF PROCDrawClip(RETURN X,RETURN Y,x,y) 362LOCAL _c1%,_c2%,_d%,_dx,_dy,_a,_b,_u,_v,_xs,_ys,_X,_Y 363PROCGetFrameCoords(_a,_b,_u,_v) 364_X=X : _Y=Y 365_c1%=FNOutsideFrame(_X,_Y) : _d%=_c1% 366_c2%=FNOutsideFrame(x,y) 367IF ((_c1%=1)OR(_c1%=2)) AND((_c2%=1)OR(_c2%=2)) THEN X=x : Y=y: ENDPROC 368_xs=x : _ys=y 369WHILE _c1%OR_c2% 370 IF (_c1%AND_c2%) THEN ENDPROC 371 _dx=x-_X : _dy=y-_Y 372 IF _c1% THEN 373 CASE TRUE OF 374 WHEN _X<_a : _Y+=_dy*(_a-_X)/_dx : _X=_a 375 WHEN _X>_b : _Y+=_dy*(_b-_X)/_dx : _X=_b 376 WHEN _Y<_u : _X+=_dx*(_u-_Y)/_dy : _Y=_u 377 WHEN _Y>_v : _X+=_dx*(_v-_Y)/_dy : _Y=_v 378 ENDCASE 379 _c1%=FNOutsideFrame(_X,_Y) 380 ELSE 381 CASE TRUE OF 382 WHEN x<_a : y+=_dy*(_a-x)/_dx : x=_a 383 WHEN x>_b : y+=_dy*(_b-x)/_dx : x=_b 384 WHEN y<_u : x+=_dx*(_u-y)/_dy : y=_u 385 WHEN y>_v : x+=_dx*(_v-y)/_dy : y=_v 386 ENDCASE 387 _c2%=FNOutsideFrame(x,y) 388 ENDIF 389ENDWHILE 390IF _d% THEN PROC@Line(_X,_Y,x,y) ELSE PROCDraw(x,y) 391X=_xs : Y=_ys 392ENDPROC 393 394REM ============= 395REM Point Graphs 396REM ============= 397 398DEF PROCPoints(f$,n%) 399LOCAL _path,_a,_b,_u,_v 400PROCGetFrameCoords(_a,_b,_u,_v) 401PROCPathBegin(_path) 402PROC@Points(f$,_a,_b,n%) 403PROCPathEnd 404ENDPROC 405 406DEF FNPoints(f$,a,b,n%) 407LOCAL _path 408PROCPathBegin(_path) 409PROC@Points(f$,a,b,n%) 410PROCPathEnd 411=_path 412 413DEF PROC@Points(f$,a,b,n%) 414LOCAL _h,x,_y,_h_min,_h_max,_undefined%,_X,_Y,_eps 415_eps=FNEpsilon 416_h_max=(b-a)/FNMinNoofPoints 417_h_min=(b-a)/FNMaxNoofPoints 418IF n%<=0 THEN _h=_h_max ELSE _h=(b-a)/n% 419x=a-_h 420LOCAL ERROR 421ON ERROR LOCAL 422_undefined%=TRUE 423IF n%<=0 THEN _h=_h_max ELSE _h=(b-a)/n% 424IF ERR=17 OR x>=b THEN ENDPROC 425REPEAT 426 x+=_h : IF x>b THEN x=b 427 _y=EVALf$ 428 IF FNInFrame(x,_y) THEN 429 CASE _undefined% OF 430 WHEN TRUE : _undefined%=FALSE 431 OTHERWISE : 432 IF n%<=0 AND x<b THEN PROCDraw_ControlLinearStep 433 ENDCASE 434 PROC@Point(x,_y) : _X=x : _Y=_y 435 ENDIF 436UNTIL x>=b 437RESTORE ERROR 438ENDPROC 439 440DEF PROCDraw_ControlLinearStep 441LOCAL _D2,_ym,_xx,_yy 442_xx=x : _yy=_y 443 x=(_xx+_X)/2 : _y=EVALf$ : _ym=(_Y+_yy)/2 444_D2=ABS(_y-_ym)/4 445IF _D2<_eps THEN 446 IF _h<=_h_max/2 PROCDraw_DoubleStep ELSE _h=_h_max 447ELSE 448 IF _h>=2*_h_min PROCDraw_HalveStep ELSE _h=_h_min 449ENDIF 450ENDPROC 451 452DEF PROCDraw_HalveStep 453REPEAT 454 _h=_h/2 455 _xx=x : _yy=_y : _ym=(_Y+_yy)/2 456 x=(_xx+_X)/2 : _y=EVALf$ 457 _D2=ABS(_y-_ym)/4 458UNTIL _D2<_eps OR _h<=_h_min 459IF _h<_h_min THEN _h=_h_min 460ENDPROC 461 462DEF PROCDraw_DoubleStep 463REPEAT 464 x=_xx+_h : _y=EVALf$ : _ym=(_Y+_y)/2 465_D2=ABS(_yy-_ym)/4 466_h=2*_h : _xx=x : _yy=_y 467UNTIL _D2>_eps OR _h>=_h_max OR x>=b 468_h=_h/2 : x-=_h 469IF x>b THEN x=b 470_y=EVALf$ 471ENDPROC 472 473REM ======================== 474REM Piece-wise Cubic Graphs 475REM ======================= 476 477DEF PROCFunction(f$,n%) 478LOCAL _path,_a,_b,_u,_v 479PROCGetFrameCoords(_a,_b,_u,_v) 480PROCPathBegin(_path) 481PROC@Function(f$,_a,_b,n%) 482PROCPathEnd 483ENDPROC 484 485DEF FNFunction(f$,a,b,n%) 486LOCAL _path 487PROCPathBegin(_path) 488PROC@Function(f$,a,b,n%) 489PROCPathEnd 490=_path 491 492DEF PROC@Function(f$,a,b,n%) 493LOCAL _eps,_h_min,_h_max,x,_h,_y,_X,_Y,_undefined% 494_eps=FNEpsilon 495_h_max=(b-a)/FNMinNoofPoints 496_h_min=(b-a)/FNMaxNoofPoints 497IF n%<=0 THEN _h=_h_max ELSE _h=(b-a)/n% 498x=a-_h 499LOCAL ERROR 500ON ERROR LOCAL 501_undefined%=TRUE 502IF n%<=0 THEN _h=_h_max ELSE _h=(b-a)/n% 503IF ERR=17 OR x>=b THEN ENDPROC 504REPEAT 505 x+=_h : IF x>b THEN x=b 506 _y=EVALf$ 507 IF _undefined% THEN 508 _X=x : _Y=_y 509 IF FNInFrame(x,_y) THEN PROCMove(x,_y) : _undefined%=FALSE 510 ELSE 511 PROCCubicClip(_X,_Y,x,_y,_h) 512 ENDIF 513UNTIL x>=b 514RESTORE ERROR 515ENDPROC 516 517DEF PROCCubicClip(RETURN X,RETURN Y,x,y,_h) 518LOCAL _c1%,_c2%,_d%,_dx,_dy,_a,_b,_u,_v,_xs,_ys,_X,_Y,_My,_my 519PROCGetFrameCoords(_a,_b,_u,_v) 520_X=X : _Y=Y 521_c1%=FNOutsideFrame(_X,_Y) : _d%=_c1% 522_c2%=FNOutsideFrame(x,y) 523IF ((_c1%=1)OR(_c1%=2)) AND((_c2%=1)OR(_c2%=2)) THEN X=x : Y=y: ENDPROC 524_xs=x : _ys=y 525WHILE _c1%OR_c2% 526 IF (_c1%AND_c2%) THEN ENDPROC 527 _dx=x-_X : _dy=y-_Y 528 IF _c1% THEN 529 CASE TRUE OF 530 WHEN _X<_a : _Y+=_dy*(_a-_X)/_dx : _X=_a 531 WHEN _X>_b : _Y+=_dy*(_b-_X)/_dx : _X=_b 532 WHEN _Y<_u : _X+=_dx*(_u-_Y)/_dy : _Y=_u 533 WHEN _Y>_v : _X+=_dx*(_v-_Y)/_dy : _Y=_v 534 ENDCASE 535 _c1%=FNOutsideFrame(_X,_Y) 536 ELSE 537 CASE TRUE OF 538 WHEN x<_a : y+=_dy*(_a-x)/_dx : x=_a 539 WHEN x>_b : y+=_dy*(_b-x)/_dx : x=_b 540 WHEN y<_u : x+=_dx*(_u-y)/_dy : y=_u 541 WHEN y>_v : x+=_dx*(_v-y)/_dy : y=_v 542 ENDCASE 543 _c2%=FNOutsideFrame(x,y) 544 ENDIF 545ENDWHILE 546IF _d% THEN 547 PROC@Line(_X,_Y,x,y) 548 ELSE 549 _My=FNSlope(f$,_X,_Y,_h,a,b,2) : _my=FNSlope(f$,x,y,_h,a,b,2) 550 PROCBezier(_X+_h/3,_Y+_h*_My/3,x-_h/3,y-_h*_my/3,x,y) 551 ENDIF 552 X=_xs : Y=_ys 553ENDPROC 554 555DEF FNSlope(f$,X,Y,h,a,b,type%) 556LOCAL _dy,_Dy,x,_y,_my 557IF X<>a THEN x=X-h : _y=EVALf$ : _dy=(Y-_y) 558IF X<>b THEN x=X+h : _y=EVALf$ : _Dy=(_y-Y) 559IF X=a THEN _dy=_Dy 560IF X=b THEN _Dy=_dy 561CASE type% OF 562WHEN 2 : _my=(_dy+_Dy)/2/h 563WHEN 3 564 IF _dy*_Dy>0 THEN _my=2*_dy*_Dy/(_dy+_Dy) ELSE _my=0 565ENDCASE 566=_my 567 568REM =========== 569REM Curves 570REM =========== 571 572DEF PROCCurve(x$,y$,A,B,n%) 573LOCAL _path,a,b,u,v 574PROCPathBegin(_path) 575PROC@Curve(x$,y$,A,B,n%) 576PROCPathEnd 577ENDPROC 578 579DEF FNCurve(x$,y$,A,B,n%) 580LOCAL _path 581PROCPathBegin(_path) 582PROC@Curve(x$,y$,A,B,n%) 583PROCPathEnd 584=_path 585 586DEF PROC@Curve(x$,y$,a,b,n%) 587LOCAL h,t,x,y,h_min,h_max,undefined% 588h_min=(b-a)/FNMinNoofPoints 589h_max=(b-a)/FNMaxNoofPoints 590IF n%<=0 THEN h=h_max ELSE h=(b-a)/n% 591t=a-h 592LOCAL ERROR 593ON ERROR LOCAL 594undefined%=TRUE 595IF n%<=0 THEN h=h_max ELSE h=(b-a)/n% 596IF ERR=17 OR t>=b THEN ENDPROC 597REPEAT 598 t+=h 599 IF t>b THEN t=b 600 x=EVALx$ : y=EVALy$ 601 CASE undefined% OF 602 WHEN TRUE : PROCMove(x,y) : undefined%=FALSE 603 OTHERWISE : PROCDraw(x,y) 604 ENDCASE 605UNTIL t>=b 606RESTORE ERROR 607ENDPROC 608 609 610REM REM ========== 611REM REM Parameters 612REM REM ========== 613 614DEF FNMaxNoofPoints=!(HIMEM+208) 615DEF FNMinNoofPoints=!(HIMEM+212) 616 617DEF FNDotsPerInch=!(HIMEM+216) 618 619DEF PROCResolution(max%,min%) 620!(HIMEM+208)=max% 621!(HIMEM+212)=min% 622ENDPROC 623 624DEF PROCAccuracy(dots%) 625!(HIMEM+216)=dots% 626ENDPROC 627 628DEF FNBarScalesLarge=((!(HIMEM+220))<<16)>>16 629 630DEF FNBarScalesSmall=(!(HIMEM+220))>>16 631 632DEF PROCBarScales(Div%,Sub%) 633!(HIMEM+220)=Div%+(Sub%<<16) 634ENDPROC 635 636DEF FNScreenSize=|(HIMEM+240) 637 638DEF PROCScreenSize(factor) 639|(HIMEM+240)=factor 640ENDPROC 641 642
+� > DrawBasic:Resources.Calculus.Graphs =� ======================================================= � $� 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. � =� ======================================================= � ********************** � � CALCULUS � � ********************** � ================ � Data points � ================ � �MatRead(data()) � _i%,_j% Ȏ �(data()) � � 1 , � _i%=1 � �(data(),1) : � data(_i%) : � � 2 � _i%=1 � �(data(),1) � _j%=1 � �(data(),2) � data(_i%,_j%) ! � " � #� $� % &"� �MaxMin(data(),� min, � max) ' � _i%,_j% (min=2^30 : max=-(2^30) )Ȏ �(data()) � *� 1 + � _i%=1 � �(data(),1) ,% � min>data(_i%) � min=data(_i%) -% � max<data(_i%) � max=data(_i%) . � /� 2 0 � _i%=1 � �(data(),1) 1 � _j%=1 � �(data(),2) 2. � min>data(_i%,_j%) � min=data(_i%,_j%) 3. � max<data(_i%,_j%) � max=data(_i%,_j%) 4 � 5 � 6� 7� 8 9 � ========================== :� Pie chart of data points ; � ========================== < =� �Pie(data()) >Ȏ �(data()) � ? � 1 : �Pie_1(data()) @ � 2 : �Pie_2(data()) A� B� C D� �Pie_1(data()) E>� _i%,_n%,_angle,_theta,_sum,_radius,_sector,_x,_y,_xc,_yc F_n%=�(data(),1) G&� _i%=1 � _n% : _sum+=data(_i%) :� H� _sum>0 � I) _angle=2*�/_sum : _theta=0 : _col%=7 J � K/ � 0, "Negative or Zero total in pie chart" L � M1 �FrameCoords(0,�FRAME_Width,0,�FRAME_Height) N- _xc=�FRAME_Width/2 : _yc=�FRAME_Height/2 O+ � _xc<_yc � _radius=_xc � _radius=_yc P _radius=_radius*�ScreenSize Q� _i%=1 � _n% R= _sector=�Sector(_xc,_yc,_radius,_angle*data(_i%),_theta) S _col%+=1 : _col%=_col% � 16 T �Fill@(_sector,_col%) U �DrawPath(_sector) V4 _x=_xc+_radius*1.1*�(_angle*data(_i%)/2+_theta) W4 _y=_yc+_radius*1.1*�(_angle*data(_i%)/2+_theta) X �Print(�(data(_i%)),_x,_y) Y _theta+=_angle*data(_i%) Z � [� \ ]� �Pie_2(data()) ^J� _i%,_j%,_m%,_n%,_angle,_theta,_sum,_radius,_sector,_x,_y,_xc,_yc,_p% _?_p%=�(21*256*180/2.54+.5)-�Frame_x : _p%=_p% � �Frame_Width `_n%=�(data(),2) a0�FrameCoords(0,�FRAME_Width,0,�FRAME_Height) b,_xc=�FRAME_Width/2 : _yc=�FRAME_Height/2 c+ � _xc<_yc � _radius=_xc � _radius=_yc d _radius=_radius*�ScreenSize e� _j%=1 � �(data(),1) f _sum=0 g*� _i%=1 � _n% : _sum+=data(_j%,_i%) :� h� _sum>0 � i) _angle=2*�/_sum : _theta=0 : _col%=7 j � k/ � 0, "Negative or Zero total in pie chart" l � m� _i%=1 � _n% nA _sector=�Sector(_xc,_yc,_radius,_angle*data(_j%,_i%),_theta) o _col%+=1 : _col%=_col% � 16 p �Fill@(_sector,_col%) q �DrawPath(_sector) r8 _x=_xc+_radius*1.1*�(_angle*data(_j%,_i%)/2+_theta) s8 _y=_yc+_radius*1.1*�(_angle*data(_j%,_i%)/2+_theta) t# �Print(�(data(_j%,_i%)),_x,_y) u! _theta+=_angle*data(_j%,_i%) v � w'�Print("Table "+�_j%,_xc-_radius,0) x^�FrameSize((_j% � _p%)*�FRAME_Width,(_j% � _p%)*�FRAME_Height,�FRAME_Width,�FRAME_Height) y� z� { | � ========================== }� Bar charts of data points ~ � ========================== �� �BarChart(data()) � �Histogram(data(),.25) � � � �� �Histogram(data(),gap) �)� _b%,_u,_v,_i%,_j%,_bar,_width,_col% �% _b%=�(data(),1) : _width=(1-gap) �* �MaxMin(data(),_u,_v) : � _u>0 � _u=0 �" �ReduceFrameSize(�ScreenSize) � �Screen(0,_b%,_u,_v) �6 �AxesScale(_b%,0,�BarScalesLarge,�BarScalesSmall) � Ȏ �(data()) � � � 1 � � _i%=1 � _b% �1 _bar=�Rectangle(_i%-1,0,_width,data(_i%)) � �Fill@(_bar,�Red) � �DrawPath(_bar) � � � � 2 � _col%=7 � � _i%=1 � _b% � _col%+=1 � � _j%=1 � �(data(),2) �U _bar=�Rectangle(_j%-1+(_i%-1)*_width/�(data(),1)/2,0,_width/2,data(_i%,_j%)) � �Fill@(_bar,_col%) � �DrawPath(_bar) � � � � � � �� � � � � ========================== �� Point plot of data points � � ========================== � �� �Plot(data(),x%,y%) �� _path ��PathBegin(_path) ��@Plot(data(),�x%,�y%) ��PathEnd � =_path � �� �Plot(data(),x%,y%) �� _path,_y% �Ȏ y% � � � � � � _y%=1 � �(data(),2) � � x%<>_y% � �1 �Symbol(�SymbolType+(_y% � 10),�PointSize) �" _path=�Plot(data(),x%,_y%) �1 �Fill@(_path,�DesktopColour(7+ (_y% � 8))) � �DrawPath(_path) � � � � � � _path=�Plot(data(),x%,y%) � �Fill@(_path,�FillColour) � �DrawPath(_path) �� �� � �� �@Plot(data(),x%,y%) � � _i% �� _i%=1 � �(data(),1) �' �@Point(data(_i%,x%),data(_i%,y%)) � � �� � � � ========================== �� Line plot of data points � � ========================== � �� �LinePlot(data(),x%,y%) �� _path ��PathBegin(_path) ��@LinePlot(data(),�x%,�y%) ��PathEnd � =_path � �� �LinePlot(data(),x%,y%) �� _path,_y% �Ȏ y% � � � � � � _y%=1 � �(data(),2) �1 � x%<>_y% � _path=�LinePlot(data(),x%,_y%) � � � �$ _path=�LinePlot(data(),x%,y%) �� �� � �� �@LinePlot(data(),x%,y%) �� _i%,_x,_y �� _i%=1 � �(data(),1) �& _x=data(_i%,x%) : _y=data(_i%,y%) �* � _i%=1 � �Move(_x,_y) � �Draw(_x,_y) � � ��ClosePlot(data(),x%,y%) �� � �� �ClosePlot(data(),x%,y%) �� closed%,n% �n%=�(data(),1) �0closed%=�(data(0,x%)-data(n%,x%))*�X_Scale<1 �8closed%=closed% � �(data(0,y%)=data(n%,y%))<�Epsilon �� closed%� �CloseWithLine �� � � � � ========================== �� Graphs of data � � ========================== � �� �GraphPlot(data(),x%,y%) �� _path � �PathBegin(_path) � �@GraphPlot(data(),�x%,�y%) � �PathEnd � =_path � �� �GraphPlot(data(),x%,y%) �� _path �Ȏ y% � � � � � � _y%=1 � �(data(),2) �2 � x%<>_y% � _path=�GraphPlot(data(),x%,_y%) � � % _path=�GraphPlot(data(),x%,y%) � � � �@GraphPlot(data(),x%,y%) %� _i%,_x,_y,_X,_Y,_Mx,_My,_mx,_my � _i%=1 � �(data(),1) & _x=data(_i%,x%) : _y=data(_i%,y%) � _i%=1 � �Move(_x,_y) 9 �Slope(data(),x%,y%,_i%,_mx,_my,2) : _X=_x : _Y=_y � _Mx=_mx : _My=_my ( �Slope(data(),x%,y%,_i%,_mx,_my,2) 8 �Bezier(_X+_Mx/3,_Y+_My/3,_x-_mx/3,_y-_my/3,_x,_y) _X=_x : _Y=_y � � �ClosePlot(data(),x%,y%) � -� �Slope(data(),x%,y%,i%,� mx,� my,type%) 5� n%,dx,dy,Dx,j%,k%,h,H,closed% : n%=�(data(),1) 2closed%=(�(data(0,x%)-data(n%,x%))*�X_Scale)<1 <closed%=closed% � (�(data(0,y%)=data(n%,y%))*�Y_Scale)<1 Ȏ i% � � 1 9 Dx=data(2,x%)-data(1,x%) : Dy=data(2,y%)-data(1,y%) � closed% � @ dx=data(1,x%)-data(n%-1,x%) : dy=data(1,y%)-data(n%-1,y%) � dx=Dx : dy=Dy ! � " � n% #A dx=data(n%,x%)-data(n%-1,x%) : dy=data(n%,y%)-data(n%-1,y%) $ � closed% � %< Dx=data(1,x%)-data(n%,x%) : Dy=data(1,y%)-data(n%,y%) & � ' Dx=dx : Dy=dy ( � ) *A Dx=data(i%+1,x%)-data(i%,x%) : Dy=data(i%+1,y%)-data(i%,y%) +A dx=data(i%,x%)-data(i%-1,x%) : dy=data(i%,y%)-data(i%-1,y%) ,� -Ȏ type% � .� 2 /* � dx*Dx>0 � mx=2*dx*Dx/(dx+Dx) � mx=0 0* � dy*Dy>0 � my=2*dy*Dy/(dy+Dy) � my=0 1� 3 2( h=�(dx*dx+dy*dy) : H=�(Dx*Dx+Dy*Dy) 38 mx=(H*dx/h+h*Dx/H)/(h+H) : my=(H*dy/h+h*Dy/H)/(h+H) 4� 5� 6 7 � ========================== 8� Graphs of Functions 9 � ========================== : ;� �Graph(f$,n%) <� _path,_a,_b,_u,_v = �GetFrameCoords(_a,_b,_u,_v) >�PathBegin(_path) ?�@Graph(f$,_a,_b,n%) @�PathEnd A� B C� �Graph(f$,a,b,n%) D� _path E�PathBegin(_path) F�@Graph(f$,a,b,n%) G�PathEnd H =_path I J� �@Graph(f$,a,b,n%) K2� _eps,_h_min,_h_max,x,_h,_y,_X,_Y,_undefined% L_eps=�Epsilon M_h_max=(b-a)/�MinNoofPoints N_h_min=(b-a)/�MaxNoofPoints O%� n%<=0 � _h=_h_max � _h=(b-a)/n% P x=a-_h Q� � R � � � S_undefined%=� T%� n%<=0 � _h=_h_max � _h=(b-a)/n% U� �=17 � x>=b � � V� W x+=_h : � x>b � x=b X _y=�f$ Y Ȏ _undefined% � Z � � [ _X=x : _Y=_y \ � �InFrame(x,_y) � ]$ �Move(x,_y) : _undefined%=� ^ � _ _X=x : _Y=_y ` � a : b/ � n%<=0 � x<b � �Draw_ControlLinearStep c �DrawClip(_X,_Y,x,_y) d � e � x>=b f� � g� h i� �DrawClip(� X,� Y,x,y) j5� _c1%,_c2%,_d%,_dx,_dy,_a,_b,_u,_v,_xs,_ys,_X,_Y k �GetFrameCoords(_a,_b,_u,_v) l_X=X : _Y=Y m(_c1%=�OutsideFrame(_X,_Y) : _d%=_c1% n_c2%=�OutsideFrame(x,y) o>� ((_c1%=1)�(_c1%=2)) �((_c2%=1)�(_c2%=2)) � X=x : Y=y: � p_xs=x : _ys=y qȕ _c1%�_c2% r � (_c1%�_c2%) � � s _dx=x-_X : _dy=y-_Y t � _c1% � u Ȏ � � v, � _X<_a : _Y+=_dy*(_a-_X)/_dx : _X=_a w, � _X>_b : _Y+=_dy*(_b-_X)/_dx : _X=_b x, � _Y<_u : _X+=_dx*(_u-_Y)/_dy : _Y=_u y, � _Y>_v : _X+=_dx*(_v-_Y)/_dy : _Y=_v z � { _c1%=�OutsideFrame(_X,_Y) | � } Ȏ � � ~( � x<_a : y+=_dy*(_a-x)/_dx : x=_a ( � x>_b : y+=_dy*(_b-x)/_dx : x=_b �( � y<_u : x+=_dx*(_u-y)/_dy : y=_u �( � y>_v : x+=_dx*(_v-y)/_dy : y=_v � � � _c2%=�OutsideFrame(x,y) � � �� �*� _d% � �@Line(_X,_Y,x,y) � �Draw(x,y) �X=_xs : Y=_ys �� � �� ============= �� Point Graphs �� ============= � �� �Points(f$,n%) �� _path,_a,_b,_u,_v � �GetFrameCoords(_a,_b,_u,_v) ��PathBegin(_path) ��@Points(f$,_a,_b,n%) ��PathEnd �� � �� �Points(f$,a,b,n%) �� _path ��PathBegin(_path) ��@Points(f$,a,b,n%) ��PathEnd � =_path � �� �@Points(f$,a,b,n%) �2� _h,x,_y,_h_min,_h_max,_undefined%,_X,_Y,_eps �_eps=�Epsilon �_h_max=(b-a)/�MinNoofPoints �_h_min=(b-a)/�MaxNoofPoints �%� n%<=0 � _h=_h_max � _h=(b-a)/n% � x=a-_h �� � � � � � �_undefined%=� �%� n%<=0 � _h=_h_max � _h=(b-a)/n% �� �=17 � x>=b � � �� � x+=_h : � x>b � x=b � _y=�f$ � � �InFrame(x,_y) � � Ȏ _undefined% � � � � : _undefined%=� � : �/ � n%<=0 � x<b � �Draw_ControlLinearStep � � �" �@Point(x,_y) : _X=x : _Y=_y � � � � x>=b �� � �� � �� �Draw_ControlLinearStep �� _D2,_ym,_xx,_yy �_xx=x : _yy=_y �+ x=(_xx+_X)/2 : _y=�f$ : _ym=(_Y+_yy)/2 �_D2=�(_y-_ym)/4 �� _D2<_eps � �0 � _h<=_h_max/2 �Draw_DoubleStep � _h=_h_max �� �/ � _h>=2*_h_min �Draw_HalveStep � _h=_h_min �� �� � �� �Draw_HalveStep �� � _h=_h/2 �$ _xx=x : _yy=_y : _ym=(_Y+_yy)/2 � x=(_xx+_X)/2 : _y=�f$ � _D2=�(_y-_ym)/4 �� _D2<_eps � _h<=_h_min �� _h<_h_min � _h=_h_min �� � �� �Draw_DoubleStep �� �& x=_xx+_h : _y=�f$ : _ym=(_Y+_y)/2 �_D2=�(_yy-_ym)/4 �_h=2*_h : _xx=x : _yy=_y �"� _D2>_eps � _h>=_h_max � x>=b �_h=_h/2 : x-=_h �� x>b � x=b � _y=�f$ �� � �� ======================== �� Piece-wise Cubic Graphs �� ======================= � �� �Function(f$,n%) �� _path,_a,_b,_u,_v � �GetFrameCoords(_a,_b,_u,_v) ��PathBegin(_path) ��@Function(f$,_a,_b,n%) ��PathEnd �� � �� �Function(f$,a,b,n%) �� _path ��PathBegin(_path) ��@Function(f$,a,b,n%) ��PathEnd � =_path � �� �@Function(f$,a,b,n%) �2� _eps,_h_min,_h_max,x,_h,_y,_X,_Y,_undefined% �_eps=�Epsilon �_h_max=(b-a)/�MinNoofPoints �_h_min=(b-a)/�MaxNoofPoints �%� n%<=0 � _h=_h_max � _h=(b-a)/n% � x=a-_h �� � � � � � �_undefined%=� �%� n%<=0 � _h=_h_max � _h=(b-a)/n% �� �=17 � x>=b � � �� � x+=_h : � x>b � x=b � _y=�f$ � � _undefined% � � _X=x : _Y=_y �5 � �InFrame(x,_y) � �Move(x,_y) : _undefined%=� � � � �CubicClip(_X,_Y,x,_y,_h) � � x>=b � � � � �CubicClip(� X,� Y,x,y,_h) =� _c1%,_c2%,_d%,_dx,_dy,_a,_b,_u,_v,_xs,_ys,_X,_Y,_My,_my �GetFrameCoords(_a,_b,_u,_v) _X=X : _Y=Y (_c1%=�OutsideFrame(_X,_Y) : _d%=_c1% _c2%=�OutsideFrame(x,y) >� ((_c1%=1)�(_c1%=2)) �((_c2%=1)�(_c2%=2)) � X=x : Y=y: � _xs=x : _ys=y ȕ _c1%�_c2% � (_c1%�_c2%) � � _dx=x-_X : _dy=y-_Y � _c1% � Ȏ � � , � _X<_a : _Y+=_dy*(_a-_X)/_dx : _X=_a , � _X>_b : _Y+=_dy*(_b-_X)/_dx : _X=_b , � _Y<_u : _X+=_dx*(_u-_Y)/_dy : _Y=_u , � _Y>_v : _X+=_dx*(_v-_Y)/_dy : _Y=_v � _c1%=�OutsideFrame(_X,_Y) � Ȏ � � ( � x<_a : y+=_dy*(_a-x)/_dx : x=_a ( � x>_b : y+=_dy*(_b-x)/_dx : x=_b ( � y<_u : x+=_dx*(_u-y)/_dy : y=_u ( � y>_v : x+=_dx*(_v-y)/_dy : y=_v � _c2%=�OutsideFrame(x,y) � !� "� _d% � # �@Line(_X,_Y,x,y) $ � %B _My=�Slope(f$,_X,_Y,_h,a,b,2) : _my=�Slope(f$,x,y,_h,a,b,2) &9 �Bezier(_X+_h/3,_Y+_h*_My/3,x-_h/3,y-_h*_my/3,x,y) ' � ( X=_xs : Y=_ys )� * + � �Slope(f$,X,Y,h,a,b,type%) ,� _dy,_Dy,x,_y,_my -(� X<>a � x=X-h : _y=�f$ : _dy=(Y-_y) .(� X<>b � x=X+h : _y=�f$ : _Dy=(_y-Y) /� X=a � _dy=_Dy 0� X=b � _Dy=_dy 1Ȏ type% � 2� 2 : _my=(_dy+_Dy)/2/h 3� 3 42 � _dy*_Dy>0 � _my=2*_dy*_Dy/(_dy+_Dy) � _my=0 5� 6=_my 7 8� =========== 9� Curves :� =========== ; <� �Curve(x$,y$,A,B,n%) =� _path,a,b,u,v >�PathBegin(_path) ?�@Curve(x$,y$,A,B,n%) @�PathEnd A� B C� �Curve(x$,y$,A,B,n%) D� _path E�PathBegin(_path) F�@Curve(x$,y$,A,B,n%) G�PathEnd H =_path I J� �@Curve(x$,y$,a,b,n%) K$� h,t,x,y,h_min,h_max,undefined% Lh_min=(b-a)/�MinNoofPoints Mh_max=(b-a)/�MaxNoofPoints N"� n%<=0 � h=h_max � h=(b-a)/n% O t=a-h P� � Q � � � Rundefined%=� S"� n%<=0 � h=h_max � h=(b-a)/n% T� �=17 � t>=b � � U� V t+=h W � t>b � t=b X x=�x$ : y=�y$ Y Ȏ undefined% � Z% � � : �Move(x,y) : undefined%=� [ : �Draw(x,y) \ � ] � t>=b ^� � _� ` a b� REM ========== c� REM Parameters d� REM ========== e f� �MaxNoofPoints=!(�+208) g� �MinNoofPoints=!(�+212) h i� �DotsPerInch=!(�+216) j k� �Resolution(max%,min%) l!(�+208)=max% m!(�+212)=min% n� o p� �Accuracy(dots%) q!(�+216)=dots% r� s t*� �BarScalesLarge=((!(�+220))<<16)>>16 u v$� �BarScalesSmall=(!(�+220))>>16 w x� �BarScales(Div%,Sub%) y!(�+220)=Div%+(Sub%<<16) z� { |� �ScreenSize=|(�+240) } ~� �ScreenSize(factor) |(�+240)=factor �� � � �
00000000 0d 00 01 2b 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 43 61 6c 63 |c:Resources.Calc| 00000020 75 6c 75 73 2e 47 72 61 70 68 73 0d 00 02 04 0d |ulus.Graphs.....| 00000030 00 03 3d f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |..=. ===========| 00000040 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00000060 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 04 05 |============....| 00000070 f4 0d 00 05 24 f4 20 63 6f 70 79 72 69 67 68 74 |....$. copyright| 00000080 20 4a 6f 65 20 54 61 79 6c 6f 72 20 4a 75 6e 65 | Joe Taylor June| 00000090 20 31 39 39 34 0d 00 06 05 f4 0d 00 07 3b f4 20 | 1994........;. | 000000a0 4e 2e 42 2e 20 46 6f 72 20 45 52 52 4f 52 20 54 |N.B. For ERROR T| 000000b0 48 52 4f 57 42 41 43 4b 20 74 6f 20 77 6f 72 6b |HROWBACK to work| 000000c0 20 54 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 | The first line | 000000d0 61 62 6f 76 65 0d 00 08 37 f4 20 20 20 20 20 20 |above...7. | 000000e0 4d 55 53 54 20 68 61 76 65 20 74 68 65 20 63 6f |MUST have the co| 000000f0 72 72 65 63 74 20 70 61 74 68 6e 61 6d 65 20 6f |rrect pathname o| 00000100 66 20 74 68 69 73 20 66 69 6c 65 2e 0d 00 09 3b |f this file....;| 00000110 f4 20 20 20 20 20 20 49 66 20 79 6f 75 20 6d 6f |. If you mo| 00000120 76 65 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 |ve the location | 00000130 6f 66 20 74 68 65 20 66 69 6c 65 20 72 65 6d 65 |of the file reme| 00000140 6d 62 65 72 20 74 6f 0d 00 0a 1f f4 20 20 20 20 |mber to..... | 00000150 20 20 61 6c 74 65 72 20 74 68 69 73 20 70 61 74 | alter this pat| 00000160 68 6e 61 6d 65 2e 0d 00 0b 05 f4 0d 00 0c 3d f4 |hname.........=.| 00000170 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ===============| 00000180 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 000001a0 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 0d 04 0d 00 0e 1c |========........| 000001b0 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |. **************| 000001c0 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 0f 05 f4 0d 00 10 |********........| 000001d0 0e f4 20 43 41 4c 43 55 4c 55 53 0d 00 11 05 f4 |.. CALCULUS.....| 000001e0 0d 00 12 1c f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..... **********| 000001f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 13 04 |************....| 00000200 0d 00 14 16 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |..... ==========| 00000210 3d 3d 3d 3d 3d 3d 0d 00 15 11 f4 20 44 61 74 61 |======..... Data| 00000220 20 70 6f 69 6e 74 73 0d 00 16 16 f4 20 3d 3d 3d | points..... ===| 00000230 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 17 |=============...| 00000240 04 0d 00 18 16 dd 20 f2 4d 61 74 52 65 61 64 28 |...... .MatRead(| 00000250 64 61 74 61 28 29 29 0d 00 19 0d ea 20 5f 69 25 |data())..... _i%| 00000260 2c 5f 6a 25 0d 00 1a 12 c8 8e 20 de 28 64 61 74 |,_j%...... .(dat| 00000270 61 28 29 29 20 ca 0d 00 1b 07 c9 20 31 0d 00 1c |a()) ...... 1...| 00000280 2c 20 e3 20 5f 69 25 3d 31 20 b8 20 de 28 64 61 |, . _i%=1 . .(da| 00000290 74 61 28 29 2c 31 29 20 3a 20 f3 20 64 61 74 61 |ta(),1) : . data| 000002a0 28 5f 69 25 29 20 3a 20 ed 0d 00 1d 07 c9 20 32 |(_i%) : ...... 2| 000002b0 0d 00 1e 1b 20 20 e3 20 5f 69 25 3d 31 20 b8 20 |.... . _i%=1 . | 000002c0 de 28 64 61 74 61 28 29 2c 31 29 0d 00 1f 1b 20 |.(data(),1).... | 000002d0 20 e3 20 5f 6a 25 3d 31 20 b8 20 de 28 64 61 74 | . _j%=1 . .(dat| 000002e0 61 28 29 2c 32 29 0d 00 20 16 20 20 20 f3 20 64 |a(),2).. . . d| 000002f0 61 74 61 28 5f 69 25 2c 5f 6a 25 29 0d 00 21 08 |ata(_i%,_j%)..!.| 00000300 20 20 20 ed 0d 00 22 08 20 20 20 ed 0d 00 23 05 | ...". ...#.| 00000310 cb 0d 00 24 05 e1 0d 00 25 04 0d 00 26 22 dd 20 |...$....%...&". | 00000320 f2 4d 61 78 4d 69 6e 28 64 61 74 61 28 29 2c f8 |.MaxMin(data(),.| 00000330 20 6d 69 6e 2c 20 f8 20 6d 61 78 29 0d 00 27 0d | min, . max)..'.| 00000340 ea 20 5f 69 25 2c 5f 6a 25 0d 00 28 1a 6d 69 6e |. _i%,_j%..(.min| 00000350 3d 32 5e 33 30 20 3a 20 6d 61 78 3d 2d 28 32 5e |=2^30 : max=-(2^| 00000360 33 30 29 0d 00 29 12 c8 8e 20 de 28 64 61 74 61 |30)..)... .(data| 00000370 28 29 29 20 ca 0d 00 2a 07 c9 20 31 0d 00 2b 1a |()) ...*.. 1..+.| 00000380 20 e3 20 5f 69 25 3d 31 20 b8 20 de 28 64 61 74 | . _i%=1 . .(dat| 00000390 61 28 29 2c 31 29 0d 00 2c 25 20 20 e7 20 6d 69 |a(),1)..,% . mi| 000003a0 6e 3e 64 61 74 61 28 5f 69 25 29 20 8c 20 6d 69 |n>data(_i%) . mi| 000003b0 6e 3d 64 61 74 61 28 5f 69 25 29 0d 00 2d 25 20 |n=data(_i%)..-% | 000003c0 20 e7 20 6d 61 78 3c 64 61 74 61 28 5f 69 25 29 | . max<data(_i%)| 000003d0 20 8c 20 6d 61 78 3d 64 61 74 61 28 5f 69 25 29 | . max=data(_i%)| 000003e0 0d 00 2e 07 20 20 ed 0d 00 2f 07 c9 20 32 0d 00 |.... .../.. 2..| 000003f0 30 1b 20 20 e3 20 5f 69 25 3d 31 20 b8 20 de 28 |0. . _i%=1 . .(| 00000400 64 61 74 61 28 29 2c 31 29 0d 00 31 1b 20 20 e3 |data(),1)..1. .| 00000410 20 5f 6a 25 3d 31 20 b8 20 de 28 64 61 74 61 28 | _j%=1 . .(data(| 00000420 29 2c 32 29 0d 00 32 2e 20 20 20 e7 20 6d 69 6e |),2)..2. . min| 00000430 3e 64 61 74 61 28 5f 69 25 2c 5f 6a 25 29 20 8c |>data(_i%,_j%) .| 00000440 20 6d 69 6e 3d 64 61 74 61 28 5f 69 25 2c 5f 6a | min=data(_i%,_j| 00000450 25 29 0d 00 33 2e 20 20 20 e7 20 6d 61 78 3c 64 |%)..3. . max<d| 00000460 61 74 61 28 5f 69 25 2c 5f 6a 25 29 20 8c 20 6d |ata(_i%,_j%) . m| 00000470 61 78 3d 64 61 74 61 28 5f 69 25 2c 5f 6a 25 29 |ax=data(_i%,_j%)| 00000480 0d 00 34 08 20 20 20 ed 0d 00 35 08 20 20 20 ed |..4. ...5. .| 00000490 0d 00 36 05 cb 0d 00 37 05 e1 0d 00 38 04 0d 00 |..6....7....8...| 000004a0 39 20 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |9 . ============| 000004b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 |==============..| 000004c0 3a 1e f4 20 50 69 65 20 63 68 61 72 74 20 6f 66 |:.. Pie chart of| 000004d0 20 64 61 74 61 20 70 6f 69 6e 74 73 0d 00 3b 20 | data points..; | 000004e0 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |. ==============| 000004f0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 3c 04 |============..<.| 00000500 0d 00 3d 12 dd 20 f2 50 69 65 28 64 61 74 61 28 |..=.. .Pie(data(| 00000510 29 29 0d 00 3e 12 c8 8e 20 de 28 64 61 74 61 28 |))..>... .(data(| 00000520 29 29 20 ca 0d 00 3f 19 20 c9 20 31 20 3a 20 f2 |)) ...?. . 1 : .| 00000530 50 69 65 5f 31 28 64 61 74 61 28 29 29 0d 00 40 |Pie_1(data())..@| 00000540 19 20 c9 20 32 20 3a 20 f2 50 69 65 5f 32 28 64 |. . 2 : .Pie_2(d| 00000550 61 74 61 28 29 29 0d 00 41 05 cb 0d 00 42 05 e1 |ata())..A....B..| 00000560 0d 00 43 04 0d 00 44 14 dd 20 f2 50 69 65 5f 31 |..C...D.. .Pie_1| 00000570 28 64 61 74 61 28 29 29 0d 00 45 3e ea 20 5f 69 |(data())..E>. _i| 00000580 25 2c 5f 6e 25 2c 5f 61 6e 67 6c 65 2c 5f 74 68 |%,_n%,_angle,_th| 00000590 65 74 61 2c 5f 73 75 6d 2c 5f 72 61 64 69 75 73 |eta,_sum,_radius| 000005a0 2c 5f 73 65 63 74 6f 72 2c 5f 78 2c 5f 79 2c 5f |,_sector,_x,_y,_| 000005b0 78 63 2c 5f 79 63 0d 00 46 13 5f 6e 25 3d de 28 |xc,_yc..F._n%=.(| 000005c0 64 61 74 61 28 29 2c 31 29 0d 00 47 26 e3 20 5f |data(),1)..G&. _| 000005d0 69 25 3d 31 20 b8 20 5f 6e 25 20 3a 20 5f 73 75 |i%=1 . _n% : _su| 000005e0 6d 2b 3d 64 61 74 61 28 5f 69 25 29 20 3a ed 0d |m+=data(_i%) :..| 000005f0 00 48 0e e7 20 5f 73 75 6d 3e 30 20 8c 0d 00 49 |.H.. _sum>0 ...I| 00000600 29 20 5f 61 6e 67 6c 65 3d 32 2a af 2f 5f 73 75 |) _angle=2*./_su| 00000610 6d 20 3a 20 5f 74 68 65 74 61 3d 30 20 3a 20 5f |m : _theta=0 : _| 00000620 63 6f 6c 25 3d 37 0d 00 4a 06 20 cc 0d 00 4b 2f |col%=7..J. ...K/| 00000630 20 85 20 30 2c 20 22 4e 65 67 61 74 69 76 65 20 | . 0, "Negative | 00000640 6f 72 20 5a 65 72 6f 20 74 6f 74 61 6c 20 69 6e |or Zero total in| 00000650 20 70 69 65 20 63 68 61 72 74 22 0d 00 4c 06 20 | pie chart"..L. | 00000660 cd 0d 00 4d 31 20 f2 46 72 61 6d 65 43 6f 6f 72 |...M1 .FrameCoor| 00000670 64 73 28 30 2c a4 46 52 41 4d 45 5f 57 69 64 74 |ds(0,.FRAME_Widt| 00000680 68 2c 30 2c a4 46 52 41 4d 45 5f 48 65 69 67 68 |h,0,.FRAME_Heigh| 00000690 74 29 0d 00 4e 2d 20 5f 78 63 3d a4 46 52 41 4d |t)..N- _xc=.FRAM| 000006a0 45 5f 57 69 64 74 68 2f 32 20 3a 20 5f 79 63 3d |E_Width/2 : _yc=| 000006b0 a4 46 52 41 4d 45 5f 48 65 69 67 68 74 2f 32 0d |.FRAME_Height/2.| 000006c0 00 4f 2b 20 e7 20 5f 78 63 3c 5f 79 63 20 8c 20 |.O+ . _xc<_yc . | 000006d0 5f 72 61 64 69 75 73 3d 5f 78 63 20 8b 20 20 5f |_radius=_xc . _| 000006e0 72 61 64 69 75 73 3d 5f 79 63 0d 00 50 20 20 5f |radius=_yc..P _| 000006f0 72 61 64 69 75 73 3d 5f 72 61 64 69 75 73 2a a4 |radius=_radius*.| 00000700 53 63 72 65 65 6e 53 69 7a 65 0d 00 51 11 e3 20 |ScreenSize..Q.. | 00000710 5f 69 25 3d 31 20 b8 20 5f 6e 25 0d 00 52 3d 20 |_i%=1 . _n%..R= | 00000720 5f 73 65 63 74 6f 72 3d a4 53 65 63 74 6f 72 28 |_sector=.Sector(| 00000730 5f 78 63 2c 5f 79 63 2c 5f 72 61 64 69 75 73 2c |_xc,_yc,_radius,| 00000740 5f 61 6e 67 6c 65 2a 64 61 74 61 28 5f 69 25 29 |_angle*data(_i%)| 00000750 2c 5f 74 68 65 74 61 29 0d 00 53 20 20 5f 63 6f |,_theta)..S _co| 00000760 6c 25 2b 3d 31 20 3a 20 5f 63 6f 6c 25 3d 5f 63 |l%+=1 : _col%=_c| 00000770 6f 6c 25 20 83 20 31 36 0d 00 54 1a 20 f2 46 69 |ol% . 16..T. .Fi| 00000780 6c 6c 40 28 5f 73 65 63 74 6f 72 2c 5f 63 6f 6c |ll@(_sector,_col| 00000790 25 29 0d 00 55 17 20 f2 44 72 61 77 50 61 74 68 |%)..U. .DrawPath| 000007a0 28 5f 73 65 63 74 6f 72 29 0d 00 56 34 20 5f 78 |(_sector)..V4 _x| 000007b0 3d 5f 78 63 2b 5f 72 61 64 69 75 73 2a 31 2e 31 |=_xc+_radius*1.1| 000007c0 2a 9b 28 5f 61 6e 67 6c 65 2a 64 61 74 61 28 5f |*.(_angle*data(_| 000007d0 69 25 29 2f 32 2b 5f 74 68 65 74 61 29 0d 00 57 |i%)/2+_theta)..W| 000007e0 34 20 5f 79 3d 5f 79 63 2b 5f 72 61 64 69 75 73 |4 _y=_yc+_radius| 000007f0 2a 31 2e 31 2a b5 28 5f 61 6e 67 6c 65 2a 64 61 |*1.1*.(_angle*da| 00000800 74 61 28 5f 69 25 29 2f 32 2b 5f 74 68 65 74 61 |ta(_i%)/2+_theta| 00000810 29 0d 00 58 1f 20 f2 50 72 69 6e 74 28 c3 28 64 |)..X. .Print(.(d| 00000820 61 74 61 28 5f 69 25 29 29 2c 5f 78 2c 5f 79 29 |ata(_i%)),_x,_y)| 00000830 0d 00 59 1d 20 5f 74 68 65 74 61 2b 3d 5f 61 6e |..Y. _theta+=_an| 00000840 67 6c 65 2a 64 61 74 61 28 5f 69 25 29 0d 00 5a |gle*data(_i%)..Z| 00000850 07 20 ed 20 0d 00 5b 05 e1 0d 00 5c 04 0d 00 5d |. . ..[....\...]| 00000860 14 dd 20 f2 50 69 65 5f 32 28 64 61 74 61 28 29 |.. .Pie_2(data()| 00000870 29 0d 00 5e 4a ea 20 5f 69 25 2c 5f 6a 25 2c 5f |)..^J. _i%,_j%,_| 00000880 6d 25 2c 5f 6e 25 2c 5f 61 6e 67 6c 65 2c 5f 74 |m%,_n%,_angle,_t| 00000890 68 65 74 61 2c 5f 73 75 6d 2c 5f 72 61 64 69 75 |heta,_sum,_radiu| 000008a0 73 2c 5f 73 65 63 74 6f 72 2c 5f 78 2c 5f 79 2c |s,_sector,_x,_y,| 000008b0 5f 78 63 2c 5f 79 63 2c 5f 70 25 0d 00 5f 3f 5f |_xc,_yc,_p%.._?_| 000008c0 70 25 3d a8 28 32 31 2a 32 35 36 2a 31 38 30 2f |p%=.(21*256*180/| 000008d0 32 2e 35 34 2b 2e 35 29 2d a4 46 72 61 6d 65 5f |2.54+.5)-.Frame_| 000008e0 78 20 3a 20 5f 70 25 3d 5f 70 25 20 81 20 a4 46 |x : _p%=_p% . .F| 000008f0 72 61 6d 65 5f 57 69 64 74 68 0d 00 60 13 5f 6e |rame_Width..`._n| 00000900 25 3d de 28 64 61 74 61 28 29 2c 32 29 0d 00 61 |%=.(data(),2)..a| 00000910 30 f2 46 72 61 6d 65 43 6f 6f 72 64 73 28 30 2c |0.FrameCoords(0,| 00000920 a4 46 52 41 4d 45 5f 57 69 64 74 68 2c 30 2c a4 |.FRAME_Width,0,.| 00000930 46 52 41 4d 45 5f 48 65 69 67 68 74 29 0d 00 62 |FRAME_Height)..b| 00000940 2c 5f 78 63 3d a4 46 52 41 4d 45 5f 57 69 64 74 |,_xc=.FRAME_Widt| 00000950 68 2f 32 20 3a 20 5f 79 63 3d a4 46 52 41 4d 45 |h/2 : _yc=.FRAME| 00000960 5f 48 65 69 67 68 74 2f 32 0d 00 63 2b 20 e7 20 |_Height/2..c+ . | 00000970 5f 78 63 3c 5f 79 63 20 8c 20 5f 72 61 64 69 75 |_xc<_yc . _radiu| 00000980 73 3d 5f 78 63 20 8b 20 20 5f 72 61 64 69 75 73 |s=_xc . _radius| 00000990 3d 5f 79 63 0d 00 64 20 20 5f 72 61 64 69 75 73 |=_yc..d _radius| 000009a0 3d 5f 72 61 64 69 75 73 2a a4 53 63 72 65 65 6e |=_radius*.Screen| 000009b0 53 69 7a 65 0d 00 65 19 e3 20 5f 6a 25 3d 31 20 |Size..e.. _j%=1 | 000009c0 b8 20 de 28 64 61 74 61 28 29 2c 31 29 0d 00 66 |. .(data(),1)..f| 000009d0 0a 5f 73 75 6d 3d 30 0d 00 67 2a e3 20 5f 69 25 |._sum=0..g*. _i%| 000009e0 3d 31 20 b8 20 5f 6e 25 20 3a 20 5f 73 75 6d 2b |=1 . _n% : _sum+| 000009f0 3d 64 61 74 61 28 5f 6a 25 2c 5f 69 25 29 20 3a |=data(_j%,_i%) :| 00000a00 ed 0d 00 68 0e e7 20 5f 73 75 6d 3e 30 20 8c 0d |...h.. _sum>0 ..| 00000a10 00 69 29 20 5f 61 6e 67 6c 65 3d 32 2a af 2f 5f |.i) _angle=2*./_| 00000a20 73 75 6d 20 3a 20 5f 74 68 65 74 61 3d 30 20 3a |sum : _theta=0 :| 00000a30 20 5f 63 6f 6c 25 3d 37 0d 00 6a 06 20 cc 0d 00 | _col%=7..j. ...| 00000a40 6b 2f 20 85 20 30 2c 20 22 4e 65 67 61 74 69 76 |k/ . 0, "Negativ| 00000a50 65 20 6f 72 20 5a 65 72 6f 20 74 6f 74 61 6c 20 |e or Zero total | 00000a60 69 6e 20 70 69 65 20 63 68 61 72 74 22 0d 00 6c |in pie chart"..l| 00000a70 07 20 cd 20 0d 00 6d 11 e3 20 5f 69 25 3d 31 20 |. . ..m.. _i%=1 | 00000a80 b8 20 5f 6e 25 0d 00 6e 41 20 5f 73 65 63 74 6f |. _n%..nA _secto| 00000a90 72 3d a4 53 65 63 74 6f 72 28 5f 78 63 2c 5f 79 |r=.Sector(_xc,_y| 00000aa0 63 2c 5f 72 61 64 69 75 73 2c 5f 61 6e 67 6c 65 |c,_radius,_angle| 00000ab0 2a 64 61 74 61 28 5f 6a 25 2c 5f 69 25 29 2c 5f |*data(_j%,_i%),_| 00000ac0 74 68 65 74 61 29 0d 00 6f 20 20 5f 63 6f 6c 25 |theta)..o _col%| 00000ad0 2b 3d 31 20 3a 20 5f 63 6f 6c 25 3d 5f 63 6f 6c |+=1 : _col%=_col| 00000ae0 25 20 83 20 31 36 0d 00 70 1a 20 f2 46 69 6c 6c |% . 16..p. .Fill| 00000af0 40 28 5f 73 65 63 74 6f 72 2c 5f 63 6f 6c 25 29 |@(_sector,_col%)| 00000b00 0d 00 71 17 20 f2 44 72 61 77 50 61 74 68 28 5f |..q. .DrawPath(_| 00000b10 73 65 63 74 6f 72 29 0d 00 72 38 20 5f 78 3d 5f |sector)..r8 _x=_| 00000b20 78 63 2b 5f 72 61 64 69 75 73 2a 31 2e 31 2a 9b |xc+_radius*1.1*.| 00000b30 28 5f 61 6e 67 6c 65 2a 64 61 74 61 28 5f 6a 25 |(_angle*data(_j%| 00000b40 2c 5f 69 25 29 2f 32 2b 5f 74 68 65 74 61 29 0d |,_i%)/2+_theta).| 00000b50 00 73 38 20 5f 79 3d 5f 79 63 2b 5f 72 61 64 69 |.s8 _y=_yc+_radi| 00000b60 75 73 2a 31 2e 31 2a b5 28 5f 61 6e 67 6c 65 2a |us*1.1*.(_angle*| 00000b70 64 61 74 61 28 5f 6a 25 2c 5f 69 25 29 2f 32 2b |data(_j%,_i%)/2+| 00000b80 5f 74 68 65 74 61 29 0d 00 74 23 20 f2 50 72 69 |_theta)..t# .Pri| 00000b90 6e 74 28 c3 28 64 61 74 61 28 5f 6a 25 2c 5f 69 |nt(.(data(_j%,_i| 00000ba0 25 29 29 2c 5f 78 2c 5f 79 29 0d 00 75 21 20 5f |%)),_x,_y)..u! _| 00000bb0 74 68 65 74 61 2b 3d 5f 61 6e 67 6c 65 2a 64 61 |theta+=_angle*da| 00000bc0 74 61 28 5f 6a 25 2c 5f 69 25 29 0d 00 76 06 20 |ta(_j%,_i%)..v. | 00000bd0 ed 0d 00 77 27 f2 50 72 69 6e 74 28 22 54 61 62 |...w'.Print("Tab| 00000be0 6c 65 20 22 2b c3 5f 6a 25 2c 5f 78 63 2d 5f 72 |le "+._j%,_xc-_r| 00000bf0 61 64 69 75 73 2c 30 29 0d 00 78 5e f2 46 72 61 |adius,0)..x^.Fra| 00000c00 6d 65 53 69 7a 65 28 28 5f 6a 25 20 83 20 5f 70 |meSize((_j% . _p| 00000c10 25 29 2a a4 46 52 41 4d 45 5f 57 69 64 74 68 2c |%)*.FRAME_Width,| 00000c20 28 5f 6a 25 20 81 20 5f 70 25 29 2a a4 46 52 41 |(_j% . _p%)*.FRA| 00000c30 4d 45 5f 48 65 69 67 68 74 2c a4 46 52 41 4d 45 |ME_Height,.FRAME| 00000c40 5f 57 69 64 74 68 2c a4 46 52 41 4d 45 5f 48 65 |_Width,.FRAME_He| 00000c50 69 67 68 74 29 20 0d 00 79 05 ed 0d 00 7a 05 e1 |ight) ..y....z..| 00000c60 0d 00 7b 04 0d 00 7c 20 f4 20 3d 3d 3d 3d 3d 3d |..{...| . ======| 00000c70 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00000c80 3d 3d 3d 3d 0d 00 7d 1f f4 20 42 61 72 20 63 68 |====..}.. Bar ch| 00000c90 61 72 74 73 20 6f 66 20 64 61 74 61 20 70 6f 69 |arts of data poi| 00000ca0 6e 74 73 0d 00 7e 20 f4 20 3d 3d 3d 3d 3d 3d 3d |nts..~ . =======| 00000cb0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00000cc0 3d 3d 3d 0d 00 7f 04 0d 00 80 17 dd 20 f2 42 61 |===......... .Ba| 00000cd0 72 43 68 61 72 74 28 64 61 74 61 28 29 29 0d 00 |rChart(data())..| 00000ce0 81 1b 20 f2 48 69 73 74 6f 67 72 61 6d 28 64 61 |.. .Histogram(da| 00000cf0 74 61 28 29 2c 2e 32 35 29 0d 00 82 06 20 e1 0d |ta(),.25).... ..| 00000d00 00 83 04 0d 00 84 1c dd 20 f2 48 69 73 74 6f 67 |........ .Histog| 00000d10 72 61 6d 28 64 61 74 61 28 29 2c 67 61 70 29 0d |ram(data(),gap).| 00000d20 00 85 29 ea 20 5f 62 25 2c 5f 75 2c 5f 76 2c 5f |..). _b%,_u,_v,_| 00000d30 69 25 2c 5f 6a 25 2c 5f 62 61 72 2c 5f 77 69 64 |i%,_j%,_bar,_wid| 00000d40 74 68 2c 5f 63 6f 6c 25 0d 00 86 25 20 5f 62 25 |th,_col%...% _b%| 00000d50 3d de 28 64 61 74 61 28 29 2c 31 29 20 3a 20 5f |=.(data(),1) : _| 00000d60 77 69 64 74 68 3d 28 31 2d 67 61 70 29 0d 00 87 |width=(1-gap)...| 00000d70 2a 20 f2 4d 61 78 4d 69 6e 28 64 61 74 61 28 29 |* .MaxMin(data()| 00000d80 2c 5f 75 2c 5f 76 29 20 3a 20 e7 20 5f 75 3e 30 |,_u,_v) : . _u>0| 00000d90 20 8c 20 5f 75 3d 30 0d 00 88 22 20 f2 52 65 64 | . _u=0..." .Red| 00000da0 75 63 65 46 72 61 6d 65 53 69 7a 65 28 a4 53 63 |uceFrameSize(.Sc| 00000db0 72 65 65 6e 53 69 7a 65 29 0d 00 89 19 20 f2 53 |reenSize).... .S| 00000dc0 63 72 65 65 6e 28 30 2c 5f 62 25 2c 5f 75 2c 5f |creen(0,_b%,_u,_| 00000dd0 76 29 0d 00 8a 36 20 f2 41 78 65 73 53 63 61 6c |v)...6 .AxesScal| 00000de0 65 28 5f 62 25 2c 30 2c a4 42 61 72 53 63 61 6c |e(_b%,0,.BarScal| 00000df0 65 73 4c 61 72 67 65 2c a4 42 61 72 53 63 61 6c |esLarge,.BarScal| 00000e00 65 73 53 6d 61 6c 6c 29 0d 00 8b 13 20 c8 8e 20 |esSmall).... .. | 00000e10 de 28 64 61 74 61 28 29 29 20 ca 0d 00 8c 0b 20 |.(data()) ..... | 00000e20 20 20 c9 20 31 20 0d 00 8d 14 20 20 20 e3 20 5f | . 1 .... . _| 00000e30 69 25 3d 31 20 b8 20 5f 62 25 0d 00 8e 31 20 20 |i%=1 . _b%...1 | 00000e40 20 20 5f 62 61 72 3d a4 52 65 63 74 61 6e 67 6c | _bar=.Rectangl| 00000e50 65 28 5f 69 25 2d 31 2c 30 2c 5f 77 69 64 74 68 |e(_i%-1,0,_width| 00000e60 2c 64 61 74 61 28 5f 69 25 29 29 0d 00 8f 19 20 |,data(_i%)).... | 00000e70 20 20 20 f2 46 69 6c 6c 40 28 5f 62 61 72 2c a4 | .Fill@(_bar,.| 00000e80 52 65 64 29 0d 00 90 17 20 20 20 20 f2 44 72 61 |Red).... .Dra| 00000e90 77 50 61 74 68 28 5f 62 61 72 29 0d 00 91 0a 20 |wPath(_bar).... | 00000ea0 20 20 20 ed 20 0d 00 92 0a 20 20 20 c9 20 32 0d | . .... . 2.| 00000eb0 00 93 10 20 20 20 20 5f 63 6f 6c 25 3d 37 20 0d |... _col%=7 .| 00000ec0 00 94 15 20 20 20 20 e3 20 5f 69 25 3d 31 20 b8 |... . _i%=1 .| 00000ed0 20 5f 62 25 0d 00 95 10 20 20 20 20 5f 63 6f 6c | _b%.... _col| 00000ee0 25 2b 3d 31 0d 00 96 1d 20 20 20 20 e3 20 5f 6a |%+=1.... . _j| 00000ef0 25 3d 31 20 b8 20 de 28 64 61 74 61 28 29 2c 32 |%=1 . .(data(),2| 00000f00 29 0d 00 97 55 20 20 20 20 20 5f 62 61 72 3d a4 |)...U _bar=.| 00000f10 52 65 63 74 61 6e 67 6c 65 28 5f 6a 25 2d 31 2b |Rectangle(_j%-1+| 00000f20 28 5f 69 25 2d 31 29 2a 5f 77 69 64 74 68 2f de |(_i%-1)*_width/.| 00000f30 28 64 61 74 61 28 29 2c 31 29 2f 32 2c 30 2c 5f |(data(),1)/2,0,_| 00000f40 77 69 64 74 68 2f 32 2c 64 61 74 61 28 5f 69 25 |width/2,data(_i%| 00000f50 2c 5f 6a 25 29 29 0d 00 98 1b 20 20 20 20 20 f2 |,_j%)).... .| 00000f60 46 69 6c 6c 40 28 5f 62 61 72 2c 5f 63 6f 6c 25 |Fill@(_bar,_col%| 00000f70 29 0d 00 99 18 20 20 20 20 20 f2 44 72 61 77 50 |).... .DrawP| 00000f80 61 74 68 28 5f 62 61 72 29 0d 00 9a 0a 20 20 20 |ath(_bar).... | 00000f90 20 20 ed 0d 00 9b 0a 20 20 20 20 20 ed 0d 00 9c | ..... ....| 00000fa0 07 20 20 cb 0d 00 9d 05 e1 0d 00 9e 04 0d 00 9f |. .............| 00000fb0 04 0d 00 a0 20 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d |.... . =========| 00000fc0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00000fd0 3d 0d 00 a1 1f f4 20 50 6f 69 6e 74 20 70 6c 6f |=..... Point plo| 00000fe0 74 20 6f 66 20 64 61 74 61 20 70 6f 69 6e 74 73 |t of data points| 00000ff0 0d 00 a2 20 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |... . ==========| 00001000 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001010 0d 00 a3 04 0d 00 a4 19 dd 20 a4 50 6c 6f 74 28 |......... .Plot(| 00001020 64 61 74 61 28 29 2c 78 25 2c 79 25 29 0d 00 a5 |data(),x%,y%)...| 00001030 0b ea 20 5f 70 61 74 68 0d 00 a6 15 f2 50 61 74 |.. _path.....Pat| 00001040 68 42 65 67 69 6e 28 5f 70 61 74 68 29 0d 00 a7 |hBegin(_path)...| 00001050 1a f2 40 50 6c 6f 74 28 64 61 74 61 28 29 2c 94 |..@Plot(data(),.| 00001060 78 25 2c 94 79 25 29 0d 00 a8 0c f2 50 61 74 68 |x%,.y%).....Path| 00001070 45 6e 64 0d 00 a9 0a 3d 5f 70 61 74 68 0d 00 aa |End....=_path...| 00001080 04 0d 00 ab 19 dd 20 f2 50 6c 6f 74 28 64 61 74 |...... .Plot(dat| 00001090 61 28 29 2c 78 25 2c 79 25 29 0d 00 ac 0f ea 20 |a(),x%,y%)..... | 000010a0 5f 70 61 74 68 2c 5f 79 25 0d 00 ad 0b c8 8e 20 |_path,_y%...... | 000010b0 79 25 20 ca 0d 00 ae 08 20 c9 20 b9 0d 00 af 1b |y% ..... . .....| 000010c0 20 20 e3 20 5f 79 25 3d 31 20 b8 20 de 28 64 61 | . _y%=1 . .(da| 000010d0 74 61 28 29 2c 32 29 0d 00 b0 11 20 20 e7 20 78 |ta(),2).... . x| 000010e0 25 3c 3e 5f 79 25 20 8c 0d 00 b1 31 20 20 20 f2 |%<>_y% ....1 .| 000010f0 53 79 6d 62 6f 6c 28 a4 53 79 6d 62 6f 6c 54 79 |Symbol(.SymbolTy| 00001100 70 65 2b 28 5f 79 25 20 83 20 31 30 29 2c a4 50 |pe+(_y% . 10),.P| 00001110 6f 69 6e 74 53 69 7a 65 29 0d 00 b2 22 20 20 20 |ointSize)..." | 00001120 5f 70 61 74 68 3d a4 50 6c 6f 74 28 64 61 74 61 |_path=.Plot(data| 00001130 28 29 2c 78 25 2c 5f 79 25 29 20 0d 00 b3 31 20 |(),x%,_y%) ...1 | 00001140 20 20 f2 46 69 6c 6c 40 28 5f 70 61 74 68 2c a4 | .Fill@(_path,.| 00001150 44 65 73 6b 74 6f 70 43 6f 6c 6f 75 72 28 37 2b |DesktopColour(7+| 00001160 20 28 5f 79 25 20 83 20 38 29 29 29 0d 00 b4 17 | (_y% . 8)))....| 00001170 20 20 20 f2 44 72 61 77 50 61 74 68 28 5f 70 61 | .DrawPath(_pa| 00001180 74 68 29 0d 00 b5 08 20 20 cd 20 0d 00 b6 08 20 |th).... . .... | 00001190 20 ed 20 0d 00 b7 06 20 7f 0d 00 b8 1f 20 20 5f | . .... ..... _| 000011a0 70 61 74 68 3d a4 50 6c 6f 74 28 64 61 74 61 28 |path=.Plot(data(| 000011b0 29 2c 78 25 2c 79 25 29 0d 00 b9 1f 20 20 f2 46 |),x%,y%).... .F| 000011c0 69 6c 6c 40 28 5f 70 61 74 68 2c a4 46 69 6c 6c |ill@(_path,.Fill| 000011d0 43 6f 6c 6f 75 72 29 0d 00 ba 17 20 20 f2 44 72 |Colour).... .Dr| 000011e0 61 77 50 61 74 68 28 5f 70 61 74 68 29 20 0d 00 |awPath(_path) ..| 000011f0 bb 05 cb 0d 00 bc 05 e1 0d 00 bd 04 0d 00 be 1a |................| 00001200 dd 20 f2 40 50 6c 6f 74 28 64 61 74 61 28 29 2c |. .@Plot(data(),| 00001210 78 25 2c 79 25 29 0d 00 bf 09 ea 20 5f 69 25 0d |x%,y%)..... _i%.| 00001220 00 c0 19 e3 20 5f 69 25 3d 31 20 b8 20 de 28 64 |.... _i%=1 . .(d| 00001230 61 74 61 28 29 2c 31 29 0d 00 c1 27 20 f2 40 50 |ata(),1)...' .@P| 00001240 6f 69 6e 74 28 64 61 74 61 28 5f 69 25 2c 78 25 |oint(data(_i%,x%| 00001250 29 2c 64 61 74 61 28 5f 69 25 2c 79 25 29 29 0d |),data(_i%,y%)).| 00001260 00 c2 06 20 ed 0d 00 c3 05 e1 0d 00 c4 04 0d 00 |... ............| 00001270 c5 20 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |. . ============| 00001280 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 |==============..| 00001290 c6 1e f4 20 4c 69 6e 65 20 70 6c 6f 74 20 6f 66 |... Line plot of| 000012a0 20 64 61 74 61 20 70 6f 69 6e 74 73 0d 00 c7 20 | data points... | 000012b0 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |. ==============| 000012c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 c8 04 |============....| 000012d0 0d 00 c9 1d dd 20 a4 4c 69 6e 65 50 6c 6f 74 28 |..... .LinePlot(| 000012e0 64 61 74 61 28 29 2c 78 25 2c 79 25 29 0d 00 ca |data(),x%,y%)...| 000012f0 0b ea 20 5f 70 61 74 68 0d 00 cb 15 f2 50 61 74 |.. _path.....Pat| 00001300 68 42 65 67 69 6e 28 5f 70 61 74 68 29 0d 00 cc |hBegin(_path)...| 00001310 1e f2 40 4c 69 6e 65 50 6c 6f 74 28 64 61 74 61 |..@LinePlot(data| 00001320 28 29 2c 94 78 25 2c 94 79 25 29 0d 00 cd 0c f2 |(),.x%,.y%).....| 00001330 50 61 74 68 45 6e 64 0d 00 ce 0a 3d 5f 70 61 74 |PathEnd....=_pat| 00001340 68 0d 00 cf 04 0d 00 d0 1d dd 20 f2 4c 69 6e 65 |h......... .Line| 00001350 50 6c 6f 74 28 64 61 74 61 28 29 2c 78 25 2c 79 |Plot(data(),x%,y| 00001360 25 29 0d 00 d1 0f ea 20 5f 70 61 74 68 2c 5f 79 |%)..... _path,_y| 00001370 25 0d 00 d2 0b c8 8e 20 79 25 20 ca 0d 00 d3 09 |%...... y% .....| 00001380 20 c9 20 b9 20 0d 00 d4 1b 20 20 e3 20 5f 79 25 | . . .... . _y%| 00001390 3d 31 20 b8 20 de 28 64 61 74 61 28 29 2c 32 29 |=1 . .(data(),2)| 000013a0 0d 00 d5 31 20 20 20 e7 20 78 25 3c 3e 5f 79 25 |...1 . x%<>_y%| 000013b0 20 8c 20 5f 70 61 74 68 3d a4 4c 69 6e 65 50 6c | . _path=.LinePl| 000013c0 6f 74 28 64 61 74 61 28 29 2c 78 25 2c 5f 79 25 |ot(data(),x%,_y%| 000013d0 29 0d 00 d6 09 20 20 20 ed 20 0d 00 d7 06 20 7f |).... . .... .| 000013e0 0d 00 d8 24 20 5f 70 61 74 68 3d a4 4c 69 6e 65 |...$ _path=.Line| 000013f0 50 6c 6f 74 28 64 61 74 61 28 29 2c 78 25 2c 79 |Plot(data(),x%,y| 00001400 25 29 20 20 0d 00 d9 05 cb 0d 00 da 05 e1 0d 00 |%) ............| 00001410 db 04 0d 00 dc 1e dd 20 f2 40 4c 69 6e 65 50 6c |....... .@LinePl| 00001420 6f 74 28 64 61 74 61 28 29 2c 78 25 2c 79 25 29 |ot(data(),x%,y%)| 00001430 0d 00 dd 0f ea 20 5f 69 25 2c 5f 78 2c 5f 79 0d |..... _i%,_x,_y.| 00001440 00 de 19 e3 20 5f 69 25 3d 31 20 b8 20 de 28 64 |.... _i%=1 . .(d| 00001450 61 74 61 28 29 2c 31 29 0d 00 df 26 20 5f 78 3d |ata(),1)...& _x=| 00001460 64 61 74 61 28 5f 69 25 2c 78 25 29 20 3a 20 5f |data(_i%,x%) : _| 00001470 79 3d 64 61 74 61 28 5f 69 25 2c 79 25 29 0d 00 |y=data(_i%,y%)..| 00001480 e0 2a 20 e7 20 5f 69 25 3d 31 20 8c 20 f2 4d 6f |.* . _i%=1 . .Mo| 00001490 76 65 28 5f 78 2c 5f 79 29 20 8b 20 f2 44 72 61 |ve(_x,_y) . .Dra| 000014a0 77 28 5f 78 2c 5f 79 29 0d 00 e1 06 20 ed 0d 00 |w(_x,_y).... ...| 000014b0 e2 1c f2 43 6c 6f 73 65 50 6c 6f 74 28 64 61 74 |...ClosePlot(dat| 000014c0 61 28 29 2c 78 25 2c 79 25 29 0d 00 e3 05 e1 0d |a(),x%,y%)......| 000014d0 00 e4 04 0d 00 e5 1e dd 20 f2 43 6c 6f 73 65 50 |........ .CloseP| 000014e0 6c 6f 74 28 64 61 74 61 28 29 2c 78 25 2c 79 25 |lot(data(),x%,y%| 000014f0 29 0d 00 e6 10 ea 20 63 6c 6f 73 65 64 25 2c 6e |)..... closed%,n| 00001500 25 0d 00 e7 12 6e 25 3d de 28 64 61 74 61 28 29 |%....n%=.(data()| 00001510 2c 31 29 0d 00 e8 30 63 6c 6f 73 65 64 25 3d 94 |,1)...0closed%=.| 00001520 28 64 61 74 61 28 30 2c 78 25 29 2d 64 61 74 61 |(data(0,x%)-data| 00001530 28 6e 25 2c 78 25 29 29 2a a4 58 5f 53 63 61 6c |(n%,x%))*.X_Scal| 00001540 65 3c 31 0d 00 e9 38 63 6c 6f 73 65 64 25 3d 63 |e<1...8closed%=c| 00001550 6c 6f 73 65 64 25 20 80 20 94 28 64 61 74 61 28 |losed% . .(data(| 00001560 30 2c 79 25 29 3d 64 61 74 61 28 6e 25 2c 79 25 |0,y%)=data(n%,y%| 00001570 29 29 3c a4 45 70 73 69 6c 6f 6e 0d 00 ea 1d e7 |))<.Epsilon.....| 00001580 20 63 6c 6f 73 65 64 25 8c 20 f2 43 6c 6f 73 65 | closed%. .Close| 00001590 57 69 74 68 4c 69 6e 65 0d 00 eb 05 e1 0d 00 ec |WithLine........| 000015a0 04 0d 00 ed 04 0d 00 ee 20 f4 20 3d 3d 3d 3d 3d |........ . =====| 000015b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 000015c0 3d 3d 3d 3d 3d 0d 00 ef 14 f4 20 47 72 61 70 68 |=====..... Graph| 000015d0 73 20 6f 66 20 64 61 74 61 0d 00 f0 20 f4 20 3d |s of data... . =| 000015e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 000015f0 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 f1 04 0d 00 f2 |=========.......| 00001600 1e dd 20 a4 47 72 61 70 68 50 6c 6f 74 28 64 61 |.. .GraphPlot(da| 00001610 74 61 28 29 2c 78 25 2c 79 25 29 0d 00 f3 0b ea |ta(),x%,y%).....| 00001620 20 5f 70 61 74 68 0d 00 f4 16 20 f2 50 61 74 68 | _path.... .Path| 00001630 42 65 67 69 6e 28 5f 70 61 74 68 29 0d 00 f5 20 |Begin(_path)... | 00001640 20 f2 40 47 72 61 70 68 50 6c 6f 74 28 64 61 74 | .@GraphPlot(dat| 00001650 61 28 29 2c 94 78 25 2c 94 79 25 29 0d 00 f6 0d |a(),.x%,.y%)....| 00001660 20 f2 50 61 74 68 45 6e 64 0d 00 f7 0a 3d 5f 70 | .PathEnd....=_p| 00001670 61 74 68 0d 00 f8 04 0d 00 f9 1e dd 20 f2 47 72 |ath......... .Gr| 00001680 61 70 68 50 6c 6f 74 28 64 61 74 61 28 29 2c 78 |aphPlot(data(),x| 00001690 25 2c 79 25 29 0d 00 fa 0b ea 20 5f 70 61 74 68 |%,y%)..... _path| 000016a0 0d 00 fb 0b c8 8e 20 79 25 20 ca 0d 00 fc 09 20 |...... y% ..... | 000016b0 c9 20 b9 20 0d 00 fd 1b 20 20 e3 20 5f 79 25 3d |. . .... . _y%=| 000016c0 31 20 b8 20 de 28 64 61 74 61 28 29 2c 32 29 0d |1 . .(data(),2).| 000016d0 00 fe 32 20 20 20 e7 20 78 25 3c 3e 5f 79 25 20 |..2 . x%<>_y% | 000016e0 8c 20 5f 70 61 74 68 3d a4 47 72 61 70 68 50 6c |. _path=.GraphPl| 000016f0 6f 74 28 64 61 74 61 28 29 2c 78 25 2c 5f 79 25 |ot(data(),x%,_y%| 00001700 29 0d 00 ff 09 20 20 20 ed 20 0d 01 00 06 20 7f |).... . .... .| 00001710 0d 01 01 25 20 5f 70 61 74 68 3d a4 47 72 61 70 |...% _path=.Grap| 00001720 68 50 6c 6f 74 28 64 61 74 61 28 29 2c 78 25 2c |hPlot(data(),x%,| 00001730 79 25 29 20 20 0d 01 02 05 cb 0d 01 03 05 e1 0d |y%) ...........| 00001740 01 04 04 0d 01 05 1f dd 20 f2 40 47 72 61 70 68 |........ .@Graph| 00001750 50 6c 6f 74 28 64 61 74 61 28 29 2c 78 25 2c 79 |Plot(data(),x%,y| 00001760 25 29 0d 01 06 25 ea 20 5f 69 25 2c 5f 78 2c 5f |%)...%. _i%,_x,_| 00001770 79 2c 5f 58 2c 5f 59 2c 5f 4d 78 2c 5f 4d 79 2c |y,_X,_Y,_Mx,_My,| 00001780 5f 6d 78 2c 5f 6d 79 0d 01 07 19 e3 20 5f 69 25 |_mx,_my..... _i%| 00001790 3d 31 20 b8 20 de 28 64 61 74 61 28 29 2c 31 29 |=1 . .(data(),1)| 000017a0 0d 01 08 26 20 5f 78 3d 64 61 74 61 28 5f 69 25 |...& _x=data(_i%| 000017b0 2c 78 25 29 20 3a 20 5f 79 3d 64 61 74 61 28 5f |,x%) : _y=data(_| 000017c0 69 25 2c 79 25 29 0d 01 09 0e 20 e7 20 5f 69 25 |i%,y%).... . _i%| 000017d0 3d 31 20 8c 0d 01 0a 12 20 20 f2 4d 6f 76 65 28 |=1 ..... .Move(| 000017e0 5f 78 2c 5f 79 29 0d 01 0b 39 20 20 f2 53 6c 6f |_x,_y)...9 .Slo| 000017f0 70 65 28 64 61 74 61 28 29 2c 78 25 2c 79 25 2c |pe(data(),x%,y%,| 00001800 5f 69 25 2c 5f 6d 78 2c 5f 6d 79 2c 32 29 20 3a |_i%,_mx,_my,2) :| 00001810 20 20 5f 58 3d 5f 78 20 3a 20 5f 59 3d 5f 79 0d | _X=_x : _Y=_y.| 00001820 01 0c 06 20 cc 0d 01 0d 17 20 20 5f 4d 78 3d 5f |... ..... _Mx=_| 00001830 6d 78 20 3a 20 5f 4d 79 3d 5f 6d 79 0d 01 0e 28 |mx : _My=_my...(| 00001840 20 20 f2 53 6c 6f 70 65 28 64 61 74 61 28 29 2c | .Slope(data(),| 00001850 78 25 2c 79 25 2c 5f 69 25 2c 5f 6d 78 2c 5f 6d |x%,y%,_i%,_mx,_m| 00001860 79 2c 32 29 0d 01 0f 38 20 20 f2 42 65 7a 69 65 |y,2)...8 .Bezie| 00001870 72 28 5f 58 2b 5f 4d 78 2f 33 2c 5f 59 2b 5f 4d |r(_X+_Mx/3,_Y+_M| 00001880 79 2f 33 2c 5f 78 2d 5f 6d 78 2f 33 2c 5f 79 2d |y/3,_x-_mx/3,_y-| 00001890 5f 6d 79 2f 33 2c 5f 78 2c 5f 79 29 0d 01 10 13 |_my/3,_x,_y)....| 000018a0 20 20 5f 58 3d 5f 78 20 3a 20 5f 59 3d 5f 79 0d | _X=_x : _Y=_y.| 000018b0 01 11 06 20 cd 0d 01 12 06 20 ed 0d 01 13 1d 20 |... ..... ..... | 000018c0 f2 43 6c 6f 73 65 50 6c 6f 74 28 64 61 74 61 28 |.ClosePlot(data(| 000018d0 29 2c 78 25 2c 79 25 29 0d 01 14 05 e1 0d 01 15 |),x%,y%)........| 000018e0 04 0d 01 16 2d dd 20 f2 53 6c 6f 70 65 28 64 61 |....-. .Slope(da| 000018f0 74 61 28 29 2c 78 25 2c 79 25 2c 69 25 2c f8 20 |ta(),x%,y%,i%,. | 00001900 6d 78 2c f8 20 6d 79 2c 74 79 70 65 25 29 0d 01 |mx,. my,type%)..| 00001910 17 35 ea 20 6e 25 2c 64 78 2c 64 79 2c 44 78 2c |.5. n%,dx,dy,Dx,| 00001920 6a 25 2c 6b 25 2c 68 2c 48 2c 63 6c 6f 73 65 64 |j%,k%,h,H,closed| 00001930 25 20 20 3a 20 6e 25 3d de 28 64 61 74 61 28 29 |% : n%=.(data()| 00001940 2c 31 29 0d 01 18 32 63 6c 6f 73 65 64 25 3d 28 |,1)...2closed%=(| 00001950 94 28 64 61 74 61 28 30 2c 78 25 29 2d 64 61 74 |.(data(0,x%)-dat| 00001960 61 28 6e 25 2c 78 25 29 29 2a a4 58 5f 53 63 61 |a(n%,x%))*.X_Sca| 00001970 6c 65 29 3c 31 0d 01 19 3c 63 6c 6f 73 65 64 25 |le)<1...<closed%| 00001980 3d 63 6c 6f 73 65 64 25 20 80 20 28 94 28 64 61 |=closed% . (.(da| 00001990 74 61 28 30 2c 79 25 29 3d 64 61 74 61 28 6e 25 |ta(0,y%)=data(n%| 000019a0 2c 79 25 29 29 2a a4 59 5f 53 63 61 6c 65 29 3c |,y%))*.Y_Scale)<| 000019b0 31 0d 01 1a 0b c8 8e 20 69 25 20 ca 0d 01 1b 08 |1...... i% .....| 000019c0 20 c9 20 31 0d 01 1c 39 20 20 44 78 3d 64 61 74 | . 1...9 Dx=dat| 000019d0 61 28 32 2c 78 25 29 2d 64 61 74 61 28 31 2c 78 |a(2,x%)-data(1,x| 000019e0 25 29 20 3a 20 44 79 3d 64 61 74 61 28 32 2c 79 |%) : Dy=data(2,y| 000019f0 25 29 2d 64 61 74 61 28 31 2c 79 25 29 0d 01 1d |%)-data(1,y%)...| 00001a00 11 20 20 e7 20 63 6c 6f 73 65 64 25 20 8c 0d 01 |. . closed% ...| 00001a10 1e 40 20 20 20 64 78 3d 64 61 74 61 28 31 2c 78 |.@ dx=data(1,x| 00001a20 25 29 2d 64 61 74 61 28 6e 25 2d 31 2c 78 25 29 |%)-data(n%-1,x%)| 00001a30 20 3a 20 64 79 3d 64 61 74 61 28 31 2c 79 25 29 | : dy=data(1,y%)| 00001a40 2d 64 61 74 61 28 6e 25 2d 31 2c 79 25 29 0d 01 |-data(n%-1,y%)..| 00001a50 1f 07 20 20 cc 0d 01 20 13 20 20 64 78 3d 44 78 |.. ... . dx=Dx| 00001a60 20 3a 20 64 79 3d 44 79 0d 01 21 07 20 20 cd 0d | : dy=Dy..!. ..| 00001a70 01 22 09 20 c9 20 6e 25 0d 01 23 41 20 20 64 78 |.". . n%..#A dx| 00001a80 3d 64 61 74 61 28 6e 25 2c 78 25 29 2d 64 61 74 |=data(n%,x%)-dat| 00001a90 61 28 6e 25 2d 31 2c 78 25 29 20 3a 20 64 79 3d |a(n%-1,x%) : dy=| 00001aa0 64 61 74 61 28 6e 25 2c 79 25 29 2d 64 61 74 61 |data(n%,y%)-data| 00001ab0 28 6e 25 2d 31 2c 79 25 29 0d 01 24 11 20 20 e7 |(n%-1,y%)..$. .| 00001ac0 20 63 6c 6f 73 65 64 25 20 8c 0d 01 25 3c 20 20 | closed% ...%< | 00001ad0 20 44 78 3d 64 61 74 61 28 31 2c 78 25 29 2d 64 | Dx=data(1,x%)-d| 00001ae0 61 74 61 28 6e 25 2c 78 25 29 20 3a 20 44 79 3d |ata(n%,x%) : Dy=| 00001af0 64 61 74 61 28 31 2c 79 25 29 2d 64 61 74 61 28 |data(1,y%)-data(| 00001b00 6e 25 2c 79 25 29 0d 01 26 07 20 20 cc 0d 01 27 |n%,y%)..&. ...'| 00001b10 14 20 20 20 44 78 3d 64 78 20 3a 20 44 79 3d 64 |. Dx=dx : Dy=d| 00001b20 79 0d 01 28 07 20 20 cd 0d 01 29 06 20 7f 0d 01 |y..(. ...). ...| 00001b30 2a 41 20 20 44 78 3d 64 61 74 61 28 69 25 2b 31 |*A Dx=data(i%+1| 00001b40 2c 78 25 29 2d 64 61 74 61 28 69 25 2c 78 25 29 |,x%)-data(i%,x%)| 00001b50 20 3a 20 44 79 3d 64 61 74 61 28 69 25 2b 31 2c | : Dy=data(i%+1,| 00001b60 79 25 29 2d 64 61 74 61 28 69 25 2c 79 25 29 0d |y%)-data(i%,y%).| 00001b70 01 2b 41 20 20 64 78 3d 64 61 74 61 28 69 25 2c |.+A dx=data(i%,| 00001b80 78 25 29 2d 64 61 74 61 28 69 25 2d 31 2c 78 25 |x%)-data(i%-1,x%| 00001b90 29 20 3a 20 64 79 3d 64 61 74 61 28 69 25 2c 79 |) : dy=data(i%,y| 00001ba0 25 29 2d 64 61 74 61 28 69 25 2d 31 2c 79 25 29 |%)-data(i%-1,y%)| 00001bb0 0d 01 2c 05 cb 0d 01 2d 0e c8 8e 20 74 79 70 65 |..,....-... type| 00001bc0 25 20 ca 0d 01 2e 07 c9 20 32 0d 01 2f 2a 20 e7 |% ...... 2../* .| 00001bd0 20 64 78 2a 44 78 3e 30 20 8c 20 6d 78 3d 32 2a | dx*Dx>0 . mx=2*| 00001be0 64 78 2a 44 78 2f 28 64 78 2b 44 78 29 20 8b 20 |dx*Dx/(dx+Dx) . | 00001bf0 6d 78 3d 30 0d 01 30 2a 20 e7 20 64 79 2a 44 79 |mx=0..0* . dy*Dy| 00001c00 3e 30 20 8c 20 6d 79 3d 32 2a 64 79 2a 44 79 2f |>0 . my=2*dy*Dy/| 00001c10 28 64 79 2b 44 79 29 20 8b 20 6d 79 3d 30 0d 01 |(dy+Dy) . my=0..| 00001c20 31 07 c9 20 33 0d 01 32 28 20 68 3d b6 28 64 78 |1.. 3..2( h=.(dx| 00001c30 2a 64 78 2b 64 79 2a 64 79 29 20 3a 20 48 3d b6 |*dx+dy*dy) : H=.| 00001c40 28 44 78 2a 44 78 2b 44 79 2a 44 79 29 0d 01 33 |(Dx*Dx+Dy*Dy)..3| 00001c50 38 20 6d 78 3d 28 48 2a 64 78 2f 68 2b 68 2a 44 |8 mx=(H*dx/h+h*D| 00001c60 78 2f 48 29 2f 28 68 2b 48 29 20 3a 20 6d 79 3d |x/H)/(h+H) : my=| 00001c70 28 48 2a 64 79 2f 68 2b 68 2a 44 79 2f 48 29 2f |(H*dy/h+h*Dy/H)/| 00001c80 28 68 2b 48 29 0d 01 34 05 cb 0d 01 35 05 e1 0d |(h+H)..4....5...| 00001c90 01 36 04 0d 01 37 20 f4 20 3d 3d 3d 3d 3d 3d 3d |.6...7 . =======| 00001ca0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001cb0 3d 3d 3d 0d 01 38 1a f4 20 20 47 72 61 70 68 73 |===..8.. Graphs| 00001cc0 20 6f 66 20 46 75 6e 63 74 69 6f 6e 73 0d 01 39 | of Functions..9| 00001cd0 20 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | . =============| 00001ce0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 01 3a |=============..:| 00001cf0 04 0d 01 3b 13 dd 20 f2 47 72 61 70 68 28 66 24 |...;.. .Graph(f$| 00001d00 2c 6e 25 29 0d 01 3c 17 ea 20 5f 70 61 74 68 2c |,n%)..<.. _path,| 00001d10 5f 61 2c 5f 62 2c 5f 75 2c 5f 76 0d 01 3d 20 f2 |_a,_b,_u,_v..= .| 00001d20 47 65 74 46 72 61 6d 65 43 6f 6f 72 64 73 28 5f |GetFrameCoords(_| 00001d30 61 2c 5f 62 2c 5f 75 2c 5f 76 29 0d 01 3e 15 f2 |a,_b,_u,_v)..>..| 00001d40 50 61 74 68 42 65 67 69 6e 28 5f 70 61 74 68 29 |PathBegin(_path)| 00001d50 0d 01 3f 18 f2 40 47 72 61 70 68 28 66 24 2c 5f |..?..@Graph(f$,_| 00001d60 61 2c 5f 62 2c 6e 25 29 0d 01 40 0c f2 50 61 74 |a,_b,n%)..@..Pat| 00001d70 68 45 6e 64 0d 01 41 05 e1 0d 01 42 04 0d 01 43 |hEnd..A....B...C| 00001d80 17 dd 20 a4 47 72 61 70 68 28 66 24 2c 61 2c 62 |.. .Graph(f$,a,b| 00001d90 2c 6e 25 29 0d 01 44 0b ea 20 5f 70 61 74 68 0d |,n%)..D.. _path.| 00001da0 01 45 15 f2 50 61 74 68 42 65 67 69 6e 28 5f 70 |.E..PathBegin(_p| 00001db0 61 74 68 29 0d 01 46 16 f2 40 47 72 61 70 68 28 |ath)..F..@Graph(| 00001dc0 66 24 2c 61 2c 62 2c 6e 25 29 0d 01 47 0c f2 50 |f$,a,b,n%)..G..P| 00001dd0 61 74 68 45 6e 64 0d 01 48 0a 3d 5f 70 61 74 68 |athEnd..H.=_path| 00001de0 0d 01 49 04 0d 01 4a 18 dd 20 f2 40 47 72 61 70 |..I...J.. .@Grap| 00001df0 68 28 66 24 2c 61 2c 62 2c 6e 25 29 0d 01 4b 32 |h(f$,a,b,n%)..K2| 00001e00 ea 20 5f 65 70 73 2c 5f 68 5f 6d 69 6e 2c 5f 68 |. _eps,_h_min,_h| 00001e10 5f 6d 61 78 2c 78 2c 5f 68 2c 5f 79 2c 5f 58 2c |_max,x,_h,_y,_X,| 00001e20 5f 59 2c 5f 75 6e 64 65 66 69 6e 65 64 25 0d 01 |_Y,_undefined%..| 00001e30 4c 11 5f 65 70 73 3d a4 45 70 73 69 6c 6f 6e 0d |L._eps=.Epsilon.| 00001e40 01 4d 1f 5f 68 5f 6d 61 78 3d 28 62 2d 61 29 2f |.M._h_max=(b-a)/| 00001e50 a4 4d 69 6e 4e 6f 6f 66 50 6f 69 6e 74 73 0d 01 |.MinNoofPoints..| 00001e60 4e 1f 5f 68 5f 6d 69 6e 3d 28 62 2d 61 29 2f a4 |N._h_min=(b-a)/.| 00001e70 4d 61 78 4e 6f 6f 66 50 6f 69 6e 74 73 0d 01 4f |MaxNoofPoints..O| 00001e80 25 e7 20 6e 25 3c 3d 30 20 8c 20 5f 68 3d 5f 68 |%. n%<=0 . _h=_h| 00001e90 5f 6d 61 78 20 8b 20 5f 68 3d 28 62 2d 61 29 2f |_max . _h=(b-a)/| 00001ea0 6e 25 0d 01 50 0a 78 3d 61 2d 5f 68 0d 01 51 07 |n%..P.x=a-_h..Q.| 00001eb0 ea 20 85 0d 01 52 09 ee 20 85 20 ea 0d 01 53 11 |. ...R.. . ...S.| 00001ec0 5f 75 6e 64 65 66 69 6e 65 64 25 3d b9 0d 01 54 |_undefined%=...T| 00001ed0 25 e7 20 6e 25 3c 3d 30 20 8c 20 5f 68 3d 5f 68 |%. n%<=0 . _h=_h| 00001ee0 5f 6d 61 78 20 8b 20 5f 68 3d 28 62 2d 61 29 2f |_max . _h=(b-a)/| 00001ef0 6e 25 0d 01 55 15 e7 20 9f 3d 31 37 20 84 20 78 |n%..U.. .=17 . x| 00001f00 3e 3d 62 20 8c 20 e1 0d 01 56 05 f5 0d 01 57 18 |>=b . ...V....W.| 00001f10 20 78 2b 3d 5f 68 20 3a 20 e7 20 78 3e 62 20 8c | x+=_h : . x>b .| 00001f20 20 78 3d 62 0d 01 58 0d 20 5f 79 3d a0 66 24 20 | x=b..X. _y=.f$ | 00001f30 20 0d 01 59 15 20 c8 8e 20 5f 75 6e 64 65 66 69 | ..Y. .. _undefi| 00001f40 6e 65 64 25 20 ca 0d 01 5a 09 20 20 c9 20 b9 0d |ned% ...Z. . ..| 00001f50 01 5b 13 20 20 20 5f 58 3d 78 20 3a 20 5f 59 3d |.[. _X=x : _Y=| 00001f60 5f 79 0d 01 5c 19 20 20 20 e7 20 a4 49 6e 46 72 |_y..\. . .InFr| 00001f70 61 6d 65 28 78 2c 5f 79 29 20 8c 0d 01 5d 24 20 |ame(x,_y) ...]$ | 00001f80 20 20 20 20 f2 4d 6f 76 65 28 78 2c 5f 79 29 20 | .Move(x,_y) | 00001f90 3a 20 5f 75 6e 64 65 66 69 6e 65 64 25 3d a3 0d |: _undefined%=..| 00001fa0 01 5e 0a 20 20 20 20 20 cc 0d 01 5f 15 20 20 20 |.^. ..._. | 00001fb0 20 20 5f 58 3d 78 20 3a 20 5f 59 3d 5f 79 0d 01 | _X=x : _Y=_y..| 00001fc0 60 0a 20 20 20 20 20 cd 0d 01 61 09 20 20 7f 20 |`. ...a. . | 00001fd0 3a 0d 01 62 2f 20 20 20 20 e7 20 6e 25 3c 3d 30 |:..b/ . n%<=0| 00001fe0 20 80 20 78 3c 62 20 8c 20 f2 44 72 61 77 5f 43 | . x<b . .Draw_C| 00001ff0 6f 6e 74 72 6f 6c 4c 69 6e 65 61 72 53 74 65 70 |ontrolLinearStep| 00002000 0d 01 63 1d 20 20 20 20 f2 44 72 61 77 43 6c 69 |..c. .DrawCli| 00002010 70 28 5f 58 2c 5f 59 2c 78 2c 5f 79 29 0d 01 64 |p(_X,_Y,x,_y)..d| 00002020 06 20 cb 0d 01 65 0a fd 20 78 3e 3d 62 0d 01 66 |. ...e.. x>=b..f| 00002030 07 f7 20 85 0d 01 67 05 e1 0d 01 68 04 0d 01 69 |.. ...g....h...i| 00002040 1c dd 20 f2 44 72 61 77 43 6c 69 70 28 f8 20 58 |.. .DrawClip(. X| 00002050 2c f8 20 59 2c 78 2c 79 29 0d 01 6a 35 ea 20 5f |,. Y,x,y)..j5. _| 00002060 63 31 25 2c 5f 63 32 25 2c 5f 64 25 2c 5f 64 78 |c1%,_c2%,_d%,_dx| 00002070 2c 5f 64 79 2c 5f 61 2c 5f 62 2c 5f 75 2c 5f 76 |,_dy,_a,_b,_u,_v| 00002080 2c 5f 78 73 2c 5f 79 73 2c 5f 58 2c 5f 59 0d 01 |,_xs,_ys,_X,_Y..| 00002090 6b 20 f2 47 65 74 46 72 61 6d 65 43 6f 6f 72 64 |k .GetFrameCoord| 000020a0 73 28 5f 61 2c 5f 62 2c 5f 75 2c 5f 76 29 0d 01 |s(_a,_b,_u,_v)..| 000020b0 6c 0f 5f 58 3d 58 20 3a 20 5f 59 3d 59 0d 01 6d |l._X=X : _Y=Y..m| 000020c0 28 5f 63 31 25 3d a4 4f 75 74 73 69 64 65 46 72 |(_c1%=.OutsideFr| 000020d0 61 6d 65 28 5f 58 2c 5f 59 29 20 3a 20 5f 64 25 |ame(_X,_Y) : _d%| 000020e0 3d 5f 63 31 25 0d 01 6e 1b 5f 63 32 25 3d a4 4f |=_c1%..n._c2%=.O| 000020f0 75 74 73 69 64 65 46 72 61 6d 65 28 78 2c 79 29 |utsideFrame(x,y)| 00002100 0d 01 6f 3e e7 20 28 28 5f 63 31 25 3d 31 29 84 |..o>. ((_c1%=1).| 00002110 28 5f 63 31 25 3d 32 29 29 20 80 28 28 5f 63 32 |(_c1%=2)) .((_c2| 00002120 25 3d 31 29 84 28 5f 63 32 25 3d 32 29 29 20 8c |%=1).(_c2%=2)) .| 00002130 20 58 3d 78 20 3a 20 59 3d 79 3a 20 20 e1 0d 01 | X=x : Y=y: ...| 00002140 70 11 5f 78 73 3d 78 20 3a 20 5f 79 73 3d 79 0d |p._xs=x : _ys=y.| 00002150 01 71 10 c8 95 20 5f 63 31 25 84 5f 63 32 25 0d |.q... _c1%._c2%.| 00002160 01 72 16 20 e7 20 28 5f 63 31 25 80 5f 63 32 25 |.r. . (_c1%._c2%| 00002170 29 20 8c 20 e1 0d 01 73 18 20 5f 64 78 3d 78 2d |) . ...s. _dx=x-| 00002180 5f 58 20 3a 20 5f 64 79 3d 79 2d 5f 59 0d 01 74 |_X : _dy=y-_Y..t| 00002190 0d 20 e7 20 5f 63 31 25 20 8c 0d 01 75 0c 20 20 |. . _c1% ...u. | 000021a0 c8 8e 20 b9 20 ca 0d 01 76 2c 20 20 20 c9 20 5f |.. . ...v, . _| 000021b0 58 3c 5f 61 20 3a 20 5f 59 2b 3d 5f 64 79 2a 28 |X<_a : _Y+=_dy*(| 000021c0 5f 61 2d 5f 58 29 2f 5f 64 78 20 3a 20 5f 58 3d |_a-_X)/_dx : _X=| 000021d0 5f 61 0d 01 77 2c 20 20 20 c9 20 5f 58 3e 5f 62 |_a..w, . _X>_b| 000021e0 20 3a 20 5f 59 2b 3d 5f 64 79 2a 28 5f 62 2d 5f | : _Y+=_dy*(_b-_| 000021f0 58 29 2f 5f 64 78 20 3a 20 5f 58 3d 5f 62 0d 01 |X)/_dx : _X=_b..| 00002200 78 2c 20 20 20 c9 20 5f 59 3c 5f 75 20 3a 20 5f |x, . _Y<_u : _| 00002210 58 2b 3d 5f 64 78 2a 28 5f 75 2d 5f 59 29 2f 5f |X+=_dx*(_u-_Y)/_| 00002220 64 79 20 3a 20 5f 59 3d 5f 75 0d 01 79 2c 20 20 |dy : _Y=_u..y, | 00002230 20 c9 20 5f 59 3e 5f 76 20 3a 20 5f 58 2b 3d 5f | . _Y>_v : _X+=_| 00002240 64 78 2a 28 5f 76 2d 5f 59 29 2f 5f 64 79 20 3a |dx*(_v-_Y)/_dy :| 00002250 20 5f 59 3d 5f 76 0d 01 7a 07 20 20 cb 0d 01 7b | _Y=_v..z. ...{| 00002260 1f 20 20 5f 63 31 25 3d a4 4f 75 74 73 69 64 65 |. _c1%=.Outside| 00002270 46 72 61 6d 65 28 5f 58 2c 5f 59 29 0d 01 7c 06 |Frame(_X,_Y)..|.| 00002280 20 cc 0d 01 7d 0c 20 20 c8 8e 20 b9 20 ca 0d 01 | ...}. .. . ...| 00002290 7e 28 20 20 20 c9 20 78 3c 5f 61 20 3a 20 79 2b |~( . x<_a : y+| 000022a0 3d 5f 64 79 2a 28 5f 61 2d 78 29 2f 5f 64 78 20 |=_dy*(_a-x)/_dx | 000022b0 3a 20 78 3d 5f 61 0d 01 7f 28 20 20 20 c9 20 78 |: x=_a...( . x| 000022c0 3e 5f 62 20 3a 20 79 2b 3d 5f 64 79 2a 28 5f 62 |>_b : y+=_dy*(_b| 000022d0 2d 78 29 2f 5f 64 78 20 3a 20 78 3d 5f 62 0d 01 |-x)/_dx : x=_b..| 000022e0 80 28 20 20 20 c9 20 79 3c 5f 75 20 3a 20 78 2b |.( . y<_u : x+| 000022f0 3d 5f 64 78 2a 28 5f 75 2d 79 29 2f 5f 64 79 20 |=_dx*(_u-y)/_dy | 00002300 3a 20 79 3d 5f 75 0d 01 81 28 20 20 20 c9 20 79 |: y=_u...( . y| 00002310 3e 5f 76 20 3a 20 78 2b 3d 5f 64 78 2a 28 5f 76 |>_v : x+=_dx*(_v| 00002320 2d 79 29 2f 5f 64 79 20 3a 20 79 3d 5f 76 0d 01 |-y)/_dy : y=_v..| 00002330 82 07 20 20 cb 0d 01 83 1d 20 20 5f 63 32 25 3d |.. ..... _c2%=| 00002340 a4 4f 75 74 73 69 64 65 46 72 61 6d 65 28 78 2c |.OutsideFrame(x,| 00002350 79 29 0d 01 84 06 20 cd 0d 01 85 06 ce 20 0d 01 |y).... ...... ..| 00002360 86 2a e7 20 5f 64 25 20 8c 20 f2 40 4c 69 6e 65 |.*. _d% . .@Line| 00002370 28 5f 58 2c 5f 59 2c 78 2c 79 29 20 8b 20 f2 44 |(_X,_Y,x,y) . .D| 00002380 72 61 77 28 78 2c 79 29 0d 01 87 11 58 3d 5f 78 |raw(x,y)....X=_x| 00002390 73 20 3a 20 59 3d 5f 79 73 0d 01 88 05 e1 0d 01 |s : Y=_ys.......| 000023a0 89 04 0d 01 8a 13 f4 20 3d 3d 3d 3d 3d 3d 3d 3d |....... ========| 000023b0 3d 3d 3d 3d 3d 0d 01 8b 13 f4 20 20 50 6f 69 6e |=====..... Poin| 000023c0 74 20 47 72 61 70 68 73 0d 01 8c 13 f4 20 3d 3d |t Graphs..... ==| 000023d0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 01 8d 04 0d |===========.....| 000023e0 01 8e 14 dd 20 f2 50 6f 69 6e 74 73 28 66 24 2c |.... .Points(f$,| 000023f0 6e 25 29 0d 01 8f 17 ea 20 5f 70 61 74 68 2c 5f |n%)..... _path,_| 00002400 61 2c 5f 62 2c 5f 75 2c 5f 76 0d 01 90 20 f2 47 |a,_b,_u,_v... .G| 00002410 65 74 46 72 61 6d 65 43 6f 6f 72 64 73 28 5f 61 |etFrameCoords(_a| 00002420 2c 5f 62 2c 5f 75 2c 5f 76 29 0d 01 91 15 f2 50 |,_b,_u,_v).....P| 00002430 61 74 68 42 65 67 69 6e 28 5f 70 61 74 68 29 0d |athBegin(_path).| 00002440 01 92 19 f2 40 50 6f 69 6e 74 73 28 66 24 2c 5f |....@Points(f$,_| 00002450 61 2c 5f 62 2c 6e 25 29 0d 01 93 0c f2 50 61 74 |a,_b,n%).....Pat| 00002460 68 45 6e 64 0d 01 94 05 e1 0d 01 95 04 0d 01 96 |hEnd............| 00002470 18 dd 20 a4 50 6f 69 6e 74 73 28 66 24 2c 61 2c |.. .Points(f$,a,| 00002480 62 2c 6e 25 29 0d 01 97 0b ea 20 5f 70 61 74 68 |b,n%)..... _path| 00002490 0d 01 98 15 f2 50 61 74 68 42 65 67 69 6e 28 5f |.....PathBegin(_| 000024a0 70 61 74 68 29 0d 01 99 17 f2 40 50 6f 69 6e 74 |path).....@Point| 000024b0 73 28 66 24 2c 61 2c 62 2c 6e 25 29 0d 01 9a 0c |s(f$,a,b,n%)....| 000024c0 f2 50 61 74 68 45 6e 64 0d 01 9b 0a 3d 5f 70 61 |.PathEnd....=_pa| 000024d0 74 68 0d 01 9c 04 0d 01 9d 19 dd 20 f2 40 50 6f |th......... .@Po| 000024e0 69 6e 74 73 28 66 24 2c 61 2c 62 2c 6e 25 29 0d |ints(f$,a,b,n%).| 000024f0 01 9e 32 ea 20 5f 68 2c 78 2c 5f 79 2c 5f 68 5f |..2. _h,x,_y,_h_| 00002500 6d 69 6e 2c 5f 68 5f 6d 61 78 2c 5f 75 6e 64 65 |min,_h_max,_unde| 00002510 66 69 6e 65 64 25 2c 5f 58 2c 5f 59 2c 5f 65 70 |fined%,_X,_Y,_ep| 00002520 73 0d 01 9f 11 5f 65 70 73 3d a4 45 70 73 69 6c |s...._eps=.Epsil| 00002530 6f 6e 0d 01 a0 1f 5f 68 5f 6d 61 78 3d 28 62 2d |on...._h_max=(b-| 00002540 61 29 2f a4 4d 69 6e 4e 6f 6f 66 50 6f 69 6e 74 |a)/.MinNoofPoint| 00002550 73 0d 01 a1 1f 5f 68 5f 6d 69 6e 3d 28 62 2d 61 |s...._h_min=(b-a| 00002560 29 2f a4 4d 61 78 4e 6f 6f 66 50 6f 69 6e 74 73 |)/.MaxNoofPoints| 00002570 0d 01 a2 25 e7 20 6e 25 3c 3d 30 20 8c 20 5f 68 |...%. n%<=0 . _h| 00002580 3d 5f 68 5f 6d 61 78 20 8b 20 5f 68 3d 28 62 2d |=_h_max . _h=(b-| 00002590 61 29 2f 6e 25 0d 01 a3 0a 78 3d 61 2d 5f 68 0d |a)/n%....x=a-_h.| 000025a0 01 a4 07 ea 20 85 0d 01 a5 09 ee 20 85 20 ea 0d |.... ...... . ..| 000025b0 01 a6 11 5f 75 6e 64 65 66 69 6e 65 64 25 3d b9 |..._undefined%=.| 000025c0 0d 01 a7 25 e7 20 6e 25 3c 3d 30 20 8c 20 5f 68 |...%. n%<=0 . _h| 000025d0 3d 5f 68 5f 6d 61 78 20 8b 20 5f 68 3d 28 62 2d |=_h_max . _h=(b-| 000025e0 61 29 2f 6e 25 0d 01 a8 15 e7 20 9f 3d 31 37 20 |a)/n%..... .=17 | 000025f0 84 20 78 3e 3d 62 20 8c 20 e1 0d 01 a9 05 f5 0d |. x>=b . .......| 00002600 01 aa 18 20 78 2b 3d 5f 68 20 3a 20 e7 20 78 3e |... x+=_h : . x>| 00002610 62 20 8c 20 78 3d 62 0d 01 ab 0c 20 5f 79 3d a0 |b . x=b.... _y=.| 00002620 66 24 20 0d 01 ac 17 20 e7 20 a4 49 6e 46 72 61 |f$ .... . .InFra| 00002630 6d 65 28 78 2c 5f 79 29 20 8c 0d 01 ad 16 20 20 |me(x,_y) ..... | 00002640 c8 8e 20 5f 75 6e 64 65 66 69 6e 65 64 25 20 ca |.. _undefined% .| 00002650 0d 01 ae 1b 20 20 20 c9 20 b9 20 3a 20 5f 75 6e |.... . . : _un| 00002660 64 65 66 69 6e 65 64 25 3d a3 20 0d 01 af 0a 20 |defined%=. .... | 00002670 20 20 7f 20 3a 0d 01 b0 2f 20 20 20 20 e7 20 6e | . :.../ . n| 00002680 25 3c 3d 30 20 80 20 78 3c 62 20 8c 20 f2 44 72 |%<=0 . x<b . .Dr| 00002690 61 77 5f 43 6f 6e 74 72 6f 6c 4c 69 6e 65 61 72 |aw_ControlLinear| 000026a0 53 74 65 70 0d 01 b1 07 20 20 cb 0d 01 b2 22 20 |Step.... ...." | 000026b0 20 f2 40 50 6f 69 6e 74 28 78 2c 5f 79 29 20 3a | .@Point(x,_y) :| 000026c0 20 5f 58 3d 78 20 3a 20 5f 59 3d 5f 79 0d 01 b3 | _X=x : _Y=_y...| 000026d0 06 20 cd 0d 01 b4 0a fd 20 78 3e 3d 62 0d 01 b5 |. ...... x>=b...| 000026e0 07 f7 20 85 0d 01 b6 05 e1 0d 01 b7 04 0d 01 b8 |.. .............| 000026f0 1d dd 20 f2 44 72 61 77 5f 43 6f 6e 74 72 6f 6c |.. .Draw_Control| 00002700 4c 69 6e 65 61 72 53 74 65 70 0d 01 b9 15 ea 20 |LinearStep..... | 00002710 5f 44 32 2c 5f 79 6d 2c 5f 78 78 2c 5f 79 79 0d |_D2,_ym,_xx,_yy.| 00002720 01 ba 12 5f 78 78 3d 78 20 3a 20 5f 79 79 3d 5f |..._xx=x : _yy=_| 00002730 79 0d 01 bb 2b 20 78 3d 28 5f 78 78 2b 5f 58 29 |y...+ x=(_xx+_X)| 00002740 2f 32 20 3a 20 5f 79 3d a0 66 24 20 3a 20 5f 79 |/2 : _y=.f$ : _y| 00002750 6d 3d 28 5f 59 2b 5f 79 79 29 2f 32 0d 01 bc 13 |m=(_Y+_yy)/2....| 00002760 5f 44 32 3d 94 28 5f 79 2d 5f 79 6d 29 2f 34 0d |_D2=.(_y-_ym)/4.| 00002770 01 bd 10 e7 20 5f 44 32 3c 5f 65 70 73 20 8c 0d |.... _D2<_eps ..| 00002780 01 be 30 20 e7 20 5f 68 3c 3d 5f 68 5f 6d 61 78 |..0 . _h<=_h_max| 00002790 2f 32 20 f2 44 72 61 77 5f 44 6f 75 62 6c 65 53 |/2 .Draw_DoubleS| 000027a0 74 65 70 20 8b 20 5f 68 3d 5f 68 5f 6d 61 78 0d |tep . _h=_h_max.| 000027b0 01 bf 05 cc 0d 01 c0 2f 20 e7 20 5f 68 3e 3d 32 |......./ . _h>=2| 000027c0 2a 5f 68 5f 6d 69 6e 20 f2 44 72 61 77 5f 48 61 |*_h_min .Draw_Ha| 000027d0 6c 76 65 53 74 65 70 20 8b 20 5f 68 3d 5f 68 5f |lveStep . _h=_h_| 000027e0 6d 69 6e 0d 01 c1 06 cd 20 0d 01 c2 05 e1 0d 01 |min..... .......| 000027f0 c3 04 0d 01 c4 15 dd 20 f2 44 72 61 77 5f 48 61 |....... .Draw_Ha| 00002800 6c 76 65 53 74 65 70 0d 01 c5 05 f5 0d 01 c6 0c |lveStep.........| 00002810 20 5f 68 3d 5f 68 2f 32 0d 01 c7 24 20 5f 78 78 | _h=_h/2...$ _xx| 00002820 3d 78 20 3a 20 5f 79 79 3d 5f 79 20 3a 20 5f 79 |=x : _yy=_y : _y| 00002830 6d 3d 28 5f 59 2b 5f 79 79 29 2f 32 0d 01 c8 1b |m=(_Y+_yy)/2....| 00002840 20 20 78 3d 28 5f 78 78 2b 5f 58 29 2f 32 20 3a | x=(_xx+_X)/2 :| 00002850 20 5f 79 3d a0 66 24 0d 01 c9 14 20 5f 44 32 3d | _y=.f$.... _D2=| 00002860 94 28 5f 79 2d 5f 79 6d 29 2f 34 0d 01 ca 1b fd |.(_y-_ym)/4.....| 00002870 20 5f 44 32 3c 5f 65 70 73 20 84 20 5f 68 3c 3d | _D2<_eps . _h<=| 00002880 5f 68 5f 6d 69 6e 0d 01 cb 1b e7 20 5f 68 3c 5f |_h_min..... _h<_| 00002890 68 5f 6d 69 6e 20 8c 20 5f 68 3d 5f 68 5f 6d 69 |h_min . _h=_h_mi| 000028a0 6e 0d 01 cc 05 e1 0d 01 cd 04 0d 01 ce 16 dd 20 |n.............. | 000028b0 f2 44 72 61 77 5f 44 6f 75 62 6c 65 53 74 65 70 |.Draw_DoubleStep| 000028c0 0d 01 cf 05 f5 0d 01 d0 26 20 78 3d 5f 78 78 2b |........& x=_xx+| 000028d0 5f 68 20 3a 20 5f 79 3d a0 66 24 20 3a 20 5f 79 |_h : _y=.f$ : _y| 000028e0 6d 3d 28 5f 59 2b 5f 79 29 2f 32 0d 01 d1 14 5f |m=(_Y+_y)/2...._| 000028f0 44 32 3d 94 28 5f 79 79 2d 5f 79 6d 29 2f 34 0d |D2=.(_yy-_ym)/4.| 00002900 01 d2 1c 5f 68 3d 32 2a 5f 68 20 3a 20 5f 78 78 |..._h=2*_h : _xx| 00002910 3d 78 20 3a 20 5f 79 79 3d 5f 79 0d 01 d3 22 fd |=x : _yy=_y...".| 00002920 20 5f 44 32 3e 5f 65 70 73 20 84 20 5f 68 3e 3d | _D2>_eps . _h>=| 00002930 5f 68 5f 6d 61 78 20 84 20 78 3e 3d 62 0d 01 d4 |_h_max . x>=b...| 00002940 13 5f 68 3d 5f 68 2f 32 20 3a 20 78 2d 3d 5f 68 |._h=_h/2 : x-=_h| 00002950 0d 01 d5 0f e7 20 78 3e 62 20 8c 20 78 3d 62 0d |..... x>b . x=b.| 00002960 01 d6 0a 5f 79 3d a0 66 24 0d 01 d7 05 e1 0d 01 |..._y=.f$.......| 00002970 d8 04 0d 01 d9 1e f4 20 3d 3d 3d 3d 3d 3d 3d 3d |....... ========| 00002980 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002990 0d 01 da 1d f4 20 50 69 65 63 65 2d 77 69 73 65 |..... Piece-wise| 000029a0 20 43 75 62 69 63 20 47 72 61 70 68 73 0d 01 db | Cubic Graphs...| 000029b0 1d f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |.. =============| 000029c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 01 dc 04 0d 01 |==========......| 000029d0 dd 16 dd 20 f2 46 75 6e 63 74 69 6f 6e 28 66 24 |... .Function(f$| 000029e0 2c 6e 25 29 0d 01 de 17 ea 20 5f 70 61 74 68 2c |,n%)..... _path,| 000029f0 5f 61 2c 5f 62 2c 5f 75 2c 5f 76 0d 01 df 20 f2 |_a,_b,_u,_v... .| 00002a00 47 65 74 46 72 61 6d 65 43 6f 6f 72 64 73 28 5f |GetFrameCoords(_| 00002a10 61 2c 5f 62 2c 5f 75 2c 5f 76 29 0d 01 e0 15 f2 |a,_b,_u,_v).....| 00002a20 50 61 74 68 42 65 67 69 6e 28 5f 70 61 74 68 29 |PathBegin(_path)| 00002a30 0d 01 e1 1b f2 40 46 75 6e 63 74 69 6f 6e 28 66 |.....@Function(f| 00002a40 24 2c 5f 61 2c 5f 62 2c 6e 25 29 0d 01 e2 0c f2 |$,_a,_b,n%).....| 00002a50 50 61 74 68 45 6e 64 0d 01 e3 05 e1 0d 01 e4 04 |PathEnd.........| 00002a60 0d 01 e5 1a dd 20 a4 46 75 6e 63 74 69 6f 6e 28 |..... .Function(| 00002a70 66 24 2c 61 2c 62 2c 6e 25 29 0d 01 e6 0b ea 20 |f$,a,b,n%)..... | 00002a80 5f 70 61 74 68 0d 01 e7 15 f2 50 61 74 68 42 65 |_path.....PathBe| 00002a90 67 69 6e 28 5f 70 61 74 68 29 0d 01 e8 19 f2 40 |gin(_path).....@| 00002aa0 46 75 6e 63 74 69 6f 6e 28 66 24 2c 61 2c 62 2c |Function(f$,a,b,| 00002ab0 6e 25 29 0d 01 e9 0c f2 50 61 74 68 45 6e 64 0d |n%).....PathEnd.| 00002ac0 01 ea 0a 3d 5f 70 61 74 68 0d 01 eb 04 0d 01 ec |...=_path.......| 00002ad0 1b dd 20 f2 40 46 75 6e 63 74 69 6f 6e 28 66 24 |.. .@Function(f$| 00002ae0 2c 61 2c 62 2c 6e 25 29 0d 01 ed 32 ea 20 5f 65 |,a,b,n%)...2. _e| 00002af0 70 73 2c 5f 68 5f 6d 69 6e 2c 5f 68 5f 6d 61 78 |ps,_h_min,_h_max| 00002b00 2c 78 2c 5f 68 2c 5f 79 2c 5f 58 2c 5f 59 2c 5f |,x,_h,_y,_X,_Y,_| 00002b10 75 6e 64 65 66 69 6e 65 64 25 0d 01 ee 11 5f 65 |undefined%...._e| 00002b20 70 73 3d a4 45 70 73 69 6c 6f 6e 0d 01 ef 1f 5f |ps=.Epsilon...._| 00002b30 68 5f 6d 61 78 3d 28 62 2d 61 29 2f a4 4d 69 6e |h_max=(b-a)/.Min| 00002b40 4e 6f 6f 66 50 6f 69 6e 74 73 0d 01 f0 1f 5f 68 |NoofPoints...._h| 00002b50 5f 6d 69 6e 3d 28 62 2d 61 29 2f a4 4d 61 78 4e |_min=(b-a)/.MaxN| 00002b60 6f 6f 66 50 6f 69 6e 74 73 0d 01 f1 25 e7 20 6e |oofPoints...%. n| 00002b70 25 3c 3d 30 20 8c 20 5f 68 3d 5f 68 5f 6d 61 78 |%<=0 . _h=_h_max| 00002b80 20 8b 20 5f 68 3d 28 62 2d 61 29 2f 6e 25 0d 01 | . _h=(b-a)/n%..| 00002b90 f2 0a 78 3d 61 2d 5f 68 0d 01 f3 07 ea 20 85 0d |..x=a-_h..... ..| 00002ba0 01 f4 09 ee 20 85 20 ea 0d 01 f5 11 5f 75 6e 64 |.... . ....._und| 00002bb0 65 66 69 6e 65 64 25 3d b9 0d 01 f6 25 e7 20 6e |efined%=....%. n| 00002bc0 25 3c 3d 30 20 8c 20 5f 68 3d 5f 68 5f 6d 61 78 |%<=0 . _h=_h_max| 00002bd0 20 8b 20 5f 68 3d 28 62 2d 61 29 2f 6e 25 0d 01 | . _h=(b-a)/n%..| 00002be0 f7 15 e7 20 9f 3d 31 37 20 84 20 78 3e 3d 62 20 |... .=17 . x>=b | 00002bf0 8c 20 e1 0d 01 f8 05 f5 0d 01 f9 18 20 78 2b 3d |. .......... x+=| 00002c00 5f 68 20 3a 20 e7 20 78 3e 62 20 8c 20 78 3d 62 |_h : . x>b . x=b| 00002c10 0d 01 fa 0b 20 5f 79 3d a0 66 24 0d 01 fb 14 20 |.... _y=.f$.... | 00002c20 e7 20 5f 75 6e 64 65 66 69 6e 65 64 25 20 8c 0d |. _undefined% ..| 00002c30 01 fc 13 20 20 5f 58 3d 78 20 3a 20 5f 59 3d 5f |... _X=x : _Y=_| 00002c40 79 20 0d 01 fd 35 20 20 e7 20 a4 49 6e 46 72 61 |y ...5 . .InFra| 00002c50 6d 65 28 78 2c 5f 79 29 20 8c 20 f2 4d 6f 76 65 |me(x,_y) . .Move| 00002c60 28 78 2c 5f 79 29 20 3a 20 5f 75 6e 64 65 66 69 |(x,_y) : _undefi| 00002c70 6e 65 64 25 3d a3 20 0d 01 fe 06 20 cc 0d 01 ff |ned%=. .... ....| 00002c80 1f 20 20 f2 43 75 62 69 63 43 6c 69 70 28 5f 58 |. .CubicClip(_X| 00002c90 2c 5f 59 2c 78 2c 5f 79 2c 5f 68 29 0d 02 00 06 |,_Y,x,_y,_h)....| 00002ca0 20 cd 0d 02 01 0a fd 20 78 3e 3d 62 0d 02 02 07 | ...... x>=b....| 00002cb0 f7 20 85 0d 02 03 05 e1 0d 02 04 04 0d 02 05 20 |. ............. | 00002cc0 dd 20 f2 43 75 62 69 63 43 6c 69 70 28 f8 20 58 |. .CubicClip(. X| 00002cd0 2c f8 20 59 2c 78 2c 79 2c 5f 68 29 0d 02 06 3d |,. Y,x,y,_h)...=| 00002ce0 ea 20 5f 63 31 25 2c 5f 63 32 25 2c 5f 64 25 2c |. _c1%,_c2%,_d%,| 00002cf0 5f 64 78 2c 5f 64 79 2c 5f 61 2c 5f 62 2c 5f 75 |_dx,_dy,_a,_b,_u| 00002d00 2c 5f 76 2c 5f 78 73 2c 5f 79 73 2c 5f 58 2c 5f |,_v,_xs,_ys,_X,_| 00002d10 59 2c 5f 4d 79 2c 5f 6d 79 0d 02 07 20 f2 47 65 |Y,_My,_my... .Ge| 00002d20 74 46 72 61 6d 65 43 6f 6f 72 64 73 28 5f 61 2c |tFrameCoords(_a,| 00002d30 5f 62 2c 5f 75 2c 5f 76 29 0d 02 08 11 5f 58 3d |_b,_u,_v)...._X=| 00002d40 58 20 3a 20 5f 59 3d 59 20 20 0d 02 09 28 5f 63 |X : _Y=Y ...(_c| 00002d50 31 25 3d a4 4f 75 74 73 69 64 65 46 72 61 6d 65 |1%=.OutsideFrame| 00002d60 28 5f 58 2c 5f 59 29 20 3a 20 5f 64 25 3d 5f 63 |(_X,_Y) : _d%=_c| 00002d70 31 25 0d 02 0a 1b 5f 63 32 25 3d a4 4f 75 74 73 |1%...._c2%=.Outs| 00002d80 69 64 65 46 72 61 6d 65 28 78 2c 79 29 0d 02 0b |ideFrame(x,y)...| 00002d90 3e e7 20 28 28 5f 63 31 25 3d 31 29 84 28 5f 63 |>. ((_c1%=1).(_c| 00002da0 31 25 3d 32 29 29 20 80 28 28 5f 63 32 25 3d 31 |1%=2)) .((_c2%=1| 00002db0 29 84 28 5f 63 32 25 3d 32 29 29 20 8c 20 58 3d |).(_c2%=2)) . X=| 00002dc0 78 20 3a 20 59 3d 79 3a 20 20 e1 0d 02 0c 11 5f |x : Y=y: ....._| 00002dd0 78 73 3d 78 20 3a 20 5f 79 73 3d 79 0d 02 0d 10 |xs=x : _ys=y....| 00002de0 c8 95 20 5f 63 31 25 84 5f 63 32 25 0d 02 0e 16 |.. _c1%._c2%....| 00002df0 20 e7 20 28 5f 63 31 25 80 5f 63 32 25 29 20 8c | . (_c1%._c2%) .| 00002e00 20 e1 0d 02 0f 18 20 5f 64 78 3d 78 2d 5f 58 20 | ..... _dx=x-_X | 00002e10 3a 20 5f 64 79 3d 79 2d 5f 59 0d 02 10 0d 20 e7 |: _dy=y-_Y.... .| 00002e20 20 5f 63 31 25 20 8c 0d 02 11 0c 20 20 c8 8e 20 | _c1% ..... .. | 00002e30 b9 20 ca 0d 02 12 2c 20 20 20 c9 20 5f 58 3c 5f |. ...., . _X<_| 00002e40 61 20 3a 20 5f 59 2b 3d 5f 64 79 2a 28 5f 61 2d |a : _Y+=_dy*(_a-| 00002e50 5f 58 29 2f 5f 64 78 20 3a 20 5f 58 3d 5f 61 0d |_X)/_dx : _X=_a.| 00002e60 02 13 2c 20 20 20 c9 20 5f 58 3e 5f 62 20 3a 20 |.., . _X>_b : | 00002e70 5f 59 2b 3d 5f 64 79 2a 28 5f 62 2d 5f 58 29 2f |_Y+=_dy*(_b-_X)/| 00002e80 5f 64 78 20 3a 20 5f 58 3d 5f 62 0d 02 14 2c 20 |_dx : _X=_b..., | 00002e90 20 20 c9 20 5f 59 3c 5f 75 20 3a 20 5f 58 2b 3d | . _Y<_u : _X+=| 00002ea0 5f 64 78 2a 28 5f 75 2d 5f 59 29 2f 5f 64 79 20 |_dx*(_u-_Y)/_dy | 00002eb0 3a 20 5f 59 3d 5f 75 0d 02 15 2c 20 20 20 c9 20 |: _Y=_u..., . | 00002ec0 5f 59 3e 5f 76 20 3a 20 5f 58 2b 3d 5f 64 78 2a |_Y>_v : _X+=_dx*| 00002ed0 28 5f 76 2d 5f 59 29 2f 5f 64 79 20 3a 20 5f 59 |(_v-_Y)/_dy : _Y| 00002ee0 3d 5f 76 0d 02 16 07 20 20 cb 0d 02 17 1f 20 20 |=_v.... ..... | 00002ef0 5f 63 31 25 3d a4 4f 75 74 73 69 64 65 46 72 61 |_c1%=.OutsideFra| 00002f00 6d 65 28 5f 58 2c 5f 59 29 0d 02 18 06 20 cc 0d |me(_X,_Y).... ..| 00002f10 02 19 0c 20 20 c8 8e 20 b9 20 ca 0d 02 1a 28 20 |... .. . ....( | 00002f20 20 20 c9 20 78 3c 5f 61 20 3a 20 79 2b 3d 5f 64 | . x<_a : y+=_d| 00002f30 79 2a 28 5f 61 2d 78 29 2f 5f 64 78 20 3a 20 78 |y*(_a-x)/_dx : x| 00002f40 3d 5f 61 0d 02 1b 28 20 20 20 c9 20 78 3e 5f 62 |=_a...( . x>_b| 00002f50 20 3a 20 79 2b 3d 5f 64 79 2a 28 5f 62 2d 78 29 | : y+=_dy*(_b-x)| 00002f60 2f 5f 64 78 20 3a 20 78 3d 5f 62 0d 02 1c 28 20 |/_dx : x=_b...( | 00002f70 20 20 c9 20 79 3c 5f 75 20 3a 20 78 2b 3d 5f 64 | . y<_u : x+=_d| 00002f80 78 2a 28 5f 75 2d 79 29 2f 5f 64 79 20 3a 20 79 |x*(_u-y)/_dy : y| 00002f90 3d 5f 75 0d 02 1d 28 20 20 20 c9 20 79 3e 5f 76 |=_u...( . y>_v| 00002fa0 20 3a 20 78 2b 3d 5f 64 78 2a 28 5f 76 2d 79 29 | : x+=_dx*(_v-y)| 00002fb0 2f 5f 64 79 20 3a 20 79 3d 5f 76 0d 02 1e 07 20 |/_dy : y=_v.... | 00002fc0 20 cb 0d 02 1f 1d 20 20 5f 63 32 25 3d a4 4f 75 | ..... _c2%=.Ou| 00002fd0 74 73 69 64 65 46 72 61 6d 65 28 78 2c 79 29 0d |tsideFrame(x,y).| 00002fe0 02 20 06 20 cd 0d 02 21 05 ce 0d 02 22 0b e7 20 |. . ...!....".. | 00002ff0 5f 64 25 20 8c 0d 02 23 17 20 20 f2 40 4c 69 6e |_d% ...#. .@Lin| 00003000 65 28 5f 58 2c 5f 59 2c 78 2c 79 29 0d 02 24 07 |e(_X,_Y,x,y)..$.| 00003010 20 20 cc 0d 02 25 42 20 20 20 5f 4d 79 3d a4 53 | ...%B _My=.S| 00003020 6c 6f 70 65 28 66 24 2c 5f 58 2c 5f 59 2c 5f 68 |lope(f$,_X,_Y,_h| 00003030 2c 61 2c 62 2c 32 29 20 3a 20 5f 6d 79 3d a4 53 |,a,b,2) : _my=.S| 00003040 6c 6f 70 65 28 66 24 2c 78 2c 79 2c 5f 68 2c 61 |lope(f$,x,y,_h,a| 00003050 2c 62 2c 32 29 0d 02 26 39 20 20 20 f2 42 65 7a |,b,2)..&9 .Bez| 00003060 69 65 72 28 5f 58 2b 5f 68 2f 33 2c 5f 59 2b 5f |ier(_X+_h/3,_Y+_| 00003070 68 2a 5f 4d 79 2f 33 2c 78 2d 5f 68 2f 33 2c 79 |h*_My/3,x-_h/3,y| 00003080 2d 5f 68 2a 5f 6d 79 2f 33 2c 78 2c 79 29 0d 02 |-_h*_my/3,x,y)..| 00003090 27 07 20 20 cd 0d 02 28 13 20 20 58 3d 5f 78 73 |'. ...(. X=_xs| 000030a0 20 3a 20 59 3d 5f 79 73 0d 02 29 05 e1 0d 02 2a | : Y=_ys..)....*| 000030b0 04 0d 02 2b 20 dd 20 a4 53 6c 6f 70 65 28 66 24 |...+ . .Slope(f$| 000030c0 2c 58 2c 59 2c 68 2c 61 2c 62 2c 74 79 70 65 25 |,X,Y,h,a,b,type%| 000030d0 29 0d 02 2c 16 ea 20 5f 64 79 2c 5f 44 79 2c 78 |)..,.. _dy,_Dy,x| 000030e0 2c 5f 79 2c 5f 6d 79 0d 02 2d 28 e7 20 58 3c 3e |,_y,_my..-(. X<>| 000030f0 61 20 8c 20 78 3d 58 2d 68 20 3a 20 5f 79 3d a0 |a . x=X-h : _y=.| 00003100 66 24 20 3a 20 5f 64 79 3d 28 59 2d 5f 79 29 0d |f$ : _dy=(Y-_y).| 00003110 02 2e 28 e7 20 58 3c 3e 62 20 8c 20 78 3d 58 2b |..(. X<>b . x=X+| 00003120 68 20 3a 20 5f 79 3d a0 66 24 20 3a 20 5f 44 79 |h : _y=.f$ : _Dy| 00003130 3d 28 5f 79 2d 59 29 0d 02 2f 13 e7 20 58 3d 61 |=(_y-Y)../.. X=a| 00003140 20 8c 20 5f 64 79 3d 5f 44 79 0d 02 30 13 e7 20 | . _dy=_Dy..0.. | 00003150 58 3d 62 20 8c 20 5f 44 79 3d 5f 64 79 0d 02 31 |X=b . _Dy=_dy..1| 00003160 0e c8 8e 20 74 79 70 65 25 20 ca 0d 02 32 1c c9 |... type% ...2..| 00003170 20 32 20 20 3a 20 5f 6d 79 3d 28 5f 64 79 2b 5f | 2 : _my=(_dy+_| 00003180 44 79 29 2f 32 2f 68 0d 02 33 07 c9 20 33 0d 02 |Dy)/2/h..3.. 3..| 00003190 34 32 20 e7 20 5f 64 79 2a 5f 44 79 3e 30 20 8c |42 . _dy*_Dy>0 .| 000031a0 20 5f 6d 79 3d 32 2a 5f 64 79 2a 5f 44 79 2f 28 | _my=2*_dy*_Dy/(| 000031b0 5f 64 79 2b 5f 44 79 29 20 8b 20 5f 6d 79 3d 30 |_dy+_Dy) . _my=0| 000031c0 0d 02 35 05 cb 0d 02 36 08 3d 5f 6d 79 0d 02 37 |..5....6.=_my..7| 000031d0 04 0d 02 38 11 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d |...8.. =========| 000031e0 3d 3d 0d 02 39 0c f4 20 43 75 72 76 65 73 0d 02 |==..9.. Curves..| 000031f0 3a 11 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d |:.. ===========.| 00003200 02 3b 04 0d 02 3c 1a dd 20 f2 43 75 72 76 65 28 |.;...<.. .Curve(| 00003210 78 24 2c 79 24 2c 41 2c 42 2c 6e 25 29 0d 02 3d |x$,y$,A,B,n%)..=| 00003220 13 ea 20 5f 70 61 74 68 2c 61 2c 62 2c 75 2c 76 |.. _path,a,b,u,v| 00003230 0d 02 3e 15 f2 50 61 74 68 42 65 67 69 6e 28 5f |..>..PathBegin(_| 00003240 70 61 74 68 29 0d 02 3f 19 f2 40 43 75 72 76 65 |path)..?..@Curve| 00003250 28 78 24 2c 79 24 2c 41 2c 42 2c 6e 25 29 0d 02 |(x$,y$,A,B,n%)..| 00003260 40 0c f2 50 61 74 68 45 6e 64 0d 02 41 05 e1 0d |@..PathEnd..A...| 00003270 02 42 04 0d 02 43 1a dd 20 a4 43 75 72 76 65 28 |.B...C.. .Curve(| 00003280 78 24 2c 79 24 2c 41 2c 42 2c 6e 25 29 0d 02 44 |x$,y$,A,B,n%)..D| 00003290 0b ea 20 5f 70 61 74 68 0d 02 45 15 f2 50 61 74 |.. _path..E..Pat| 000032a0 68 42 65 67 69 6e 28 5f 70 61 74 68 29 0d 02 46 |hBegin(_path)..F| 000032b0 19 f2 40 43 75 72 76 65 28 78 24 2c 79 24 2c 41 |..@Curve(x$,y$,A| 000032c0 2c 42 2c 6e 25 29 0d 02 47 0c f2 50 61 74 68 45 |,B,n%)..G..PathE| 000032d0 6e 64 0d 02 48 0a 3d 5f 70 61 74 68 0d 02 49 04 |nd..H.=_path..I.| 000032e0 0d 02 4a 1b dd 20 f2 40 43 75 72 76 65 28 78 24 |..J.. .@Curve(x$| 000032f0 2c 79 24 2c 61 2c 62 2c 6e 25 29 0d 02 4b 24 ea |,y$,a,b,n%)..K$.| 00003300 20 68 2c 74 2c 78 2c 79 2c 68 5f 6d 69 6e 2c 68 | h,t,x,y,h_min,h| 00003310 5f 6d 61 78 2c 75 6e 64 65 66 69 6e 65 64 25 0d |_max,undefined%.| 00003320 02 4c 1e 68 5f 6d 69 6e 3d 28 62 2d 61 29 2f a4 |.L.h_min=(b-a)/.| 00003330 4d 69 6e 4e 6f 6f 66 50 6f 69 6e 74 73 0d 02 4d |MinNoofPoints..M| 00003340 1e 68 5f 6d 61 78 3d 28 62 2d 61 29 2f a4 4d 61 |.h_max=(b-a)/.Ma| 00003350 78 4e 6f 6f 66 50 6f 69 6e 74 73 0d 02 4e 22 e7 |xNoofPoints..N".| 00003360 20 6e 25 3c 3d 30 20 8c 20 68 3d 68 5f 6d 61 78 | n%<=0 . h=h_max| 00003370 20 8b 20 68 3d 28 62 2d 61 29 2f 6e 25 0d 02 4f | . h=(b-a)/n%..O| 00003380 09 74 3d 61 2d 68 0d 02 50 07 ea 20 85 0d 02 51 |.t=a-h..P.. ...Q| 00003390 09 ee 20 85 20 ea 0d 02 52 10 75 6e 64 65 66 69 |.. . ...R.undefi| 000033a0 6e 65 64 25 3d b9 0d 02 53 22 e7 20 6e 25 3c 3d |ned%=...S". n%<=| 000033b0 30 20 8c 20 68 3d 68 5f 6d 61 78 20 8b 20 68 3d |0 . h=h_max . h=| 000033c0 28 62 2d 61 29 2f 6e 25 0d 02 54 15 e7 20 9f 3d |(b-a)/n%..T.. .=| 000033d0 31 37 20 84 20 74 3e 3d 62 20 8c 20 e1 0d 02 55 |17 . t>=b . ...U| 000033e0 05 f5 0d 02 56 09 20 74 2b 3d 68 0d 02 57 10 20 |....V. t+=h..W. | 000033f0 e7 20 74 3e 62 20 8c 20 74 3d 62 0d 02 58 12 20 |. t>b . t=b..X. | 00003400 78 3d a0 78 24 20 3a 20 79 3d a0 79 24 0d 02 59 |x=.x$ : y=.y$..Y| 00003410 14 20 c8 8e 20 75 6e 64 65 66 69 6e 65 64 25 20 |. .. undefined% | 00003420 ca 0d 02 5a 25 20 20 c9 20 b9 20 3a 20 f2 4d 6f |...Z% . . : .Mo| 00003430 76 65 28 78 2c 79 29 20 3a 20 75 6e 64 65 66 69 |ve(x,y) : undefi| 00003440 6e 65 64 25 3d a3 0d 02 5b 14 20 20 7f 20 3a 20 |ned%=...[. . : | 00003450 f2 44 72 61 77 28 78 2c 79 29 0d 02 5c 06 20 cb |.Draw(x,y)..\. .| 00003460 0d 02 5d 0a fd 20 74 3e 3d 62 0d 02 5e 07 f7 20 |..].. t>=b..^.. | 00003470 85 0d 02 5f 05 e1 0d 02 60 04 0d 02 61 04 0d 02 |..._....`...a...| 00003480 62 14 f4 20 52 45 4d 20 3d 3d 3d 3d 3d 3d 3d 3d |b.. REM ========| 00003490 3d 3d 0d 02 63 14 f4 20 52 45 4d 20 50 61 72 61 |==..c.. REM Para| 000034a0 6d 65 74 65 72 73 0d 02 64 14 f4 20 52 45 4d 20 |meters..d.. REM | 000034b0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 02 65 04 0d 02 |==========..e...| 000034c0 66 1d dd 20 a4 4d 61 78 4e 6f 6f 66 50 6f 69 6e |f.. .MaxNoofPoin| 000034d0 74 73 3d 21 28 93 2b 32 30 38 29 0d 02 67 1d dd |ts=!(.+208)..g..| 000034e0 20 a4 4d 69 6e 4e 6f 6f 66 50 6f 69 6e 74 73 3d | .MinNoofPoints=| 000034f0 21 28 93 2b 32 31 32 29 0d 02 68 04 0d 02 69 1b |!(.+212)..h...i.| 00003500 dd 20 a4 44 6f 74 73 50 65 72 49 6e 63 68 3d 21 |. .DotsPerInch=!| 00003510 28 93 2b 32 31 36 29 0d 02 6a 05 20 0d 02 6b 1c |(.+216)..j. ..k.| 00003520 dd 20 f2 52 65 73 6f 6c 75 74 69 6f 6e 28 6d 61 |. .Resolution(ma| 00003530 78 25 2c 6d 69 6e 25 29 0d 02 6c 11 21 28 93 2b |x%,min%)..l.!(.+| 00003540 32 30 38 29 3d 6d 61 78 25 0d 02 6d 11 21 28 93 |208)=max%..m.!(.| 00003550 2b 32 31 32 29 3d 6d 69 6e 25 0d 02 6e 05 e1 0d |+212)=min%..n...| 00003560 02 6f 04 0d 02 70 16 dd 20 f2 41 63 63 75 72 61 |.o...p.. .Accura| 00003570 63 79 28 64 6f 74 73 25 29 0d 02 71 12 21 28 93 |cy(dots%)..q.!(.| 00003580 2b 32 31 36 29 3d 64 6f 74 73 25 0d 02 72 05 e1 |+216)=dots%..r..| 00003590 0d 02 73 04 0d 02 74 2a dd 20 a4 42 61 72 53 63 |..s...t*. .BarSc| 000035a0 61 6c 65 73 4c 61 72 67 65 3d 28 28 21 28 93 2b |alesLarge=((!(.+| 000035b0 32 32 30 29 29 3c 3c 31 36 29 3e 3e 31 36 0d 02 |220))<<16)>>16..| 000035c0 75 04 0d 02 76 24 dd 20 a4 42 61 72 53 63 61 6c |u...v$. .BarScal| 000035d0 65 73 53 6d 61 6c 6c 3d 28 21 28 93 2b 32 32 30 |esSmall=(!(.+220| 000035e0 29 29 3e 3e 31 36 0d 02 77 04 0d 02 78 1b dd 20 |))>>16..w...x.. | 000035f0 f2 42 61 72 53 63 61 6c 65 73 28 44 69 76 25 2c |.BarScales(Div%,| 00003600 53 75 62 25 29 0d 02 79 1c 21 28 93 2b 32 32 30 |Sub%)..y.!(.+220| 00003610 29 3d 44 69 76 25 2b 28 53 75 62 25 3c 3c 31 36 |)=Div%+(Sub%<<16| 00003620 29 0d 02 7a 05 e1 0d 02 7b 04 0d 02 7c 1a dd 20 |)..z....{...|.. | 00003630 a4 53 63 72 65 65 6e 53 69 7a 65 3d 7c 28 93 2b |.ScreenSize=|(.+| 00003640 32 34 30 29 0d 02 7d 04 0d 02 7e 19 dd 20 f2 53 |240)..}...~.. .S| 00003650 63 72 65 65 6e 53 69 7a 65 28 66 61 63 74 6f 72 |creenSize(factor| 00003660 29 0d 02 7f 13 7c 28 93 2b 32 34 30 29 3d 66 61 |)....|(.+240)=fa| 00003670 63 74 6f 72 0d 02 80 05 e1 0d 02 81 04 0d 02 82 |ctor............| 00003680 04 0d ff |...| 00003683