home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / CNC11TP.ZIP / BNCHPOLY.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-01-19  |  1.8 KB  |  67 lines

  1. { Copyright (C) 1989 Adam Fritz, 133 Main St., Afton, N.Y. 13730 }
  2.  
  3. program BenchPolygon (output) ;
  4.  
  5.    { BnchPoly - compute average polygon generation time }
  6.  
  7. uses GRAPH, DOS ;
  8.  
  9. {~~~~~~~~~~~~~~~~~~~~ polygon routines ~~~~~~~~~~~~~~~~~~~~}
  10.  
  11. {$I conic.pas }
  12.  
  13. {$I polyra.pas }
  14. {-$I polyraf.pas }
  15. {-$I polyda.pas }
  16. {-$I polydaf.pas }
  17.  
  18. {~~~~~~~~~~~~~~~~~~~~~ main program ~~~~~~~~~~~~~~~~~~~~~~~}
  19.  
  20. const
  21.    nPolygon = 100 ;
  22.  
  23. var
  24.    i : integer ;
  25.    xc,yc : integer ;
  26.    Hour,Min,Sec,CentiSec : array[0..2] of word ;
  27.    Time : array[0..2] of single ;
  28.    dTimePolygon,dTimeStroke : single ;
  29.    grDetect,grMode : integer ;
  30.  
  31. begin
  32.  
  33.    grDetect := Detect ;
  34.    InitGraph(grDetect,grMode,'') ;
  35.    xc := (GetMaxX + 1) shr 1 ;
  36.    yc := (GetMaxY + 1) shr 1 ;
  37.    Randomize ;
  38.    GetTime(Hour[0],Min[0],Sec[0],CentiSec[0]) ;
  39.                                 { TURBO polygon }
  40. {
  41.    ClearDevice ;
  42.    for i := 1 to nPolygon do
  43.       Polygon(xc,yc,Random(xc),Random(30),Pi*Random) ;
  44. }
  45.    GetTime(Hour[1],Min[1],Sec[1],CentiSec[1]) ;
  46.                                 { stroke polygon }
  47.    ClearDevice ;
  48.    for i := 1 to nPolygon do
  49.       StrokePolygon(Random(GetMaxX),Random(GetMaxY),
  50.                       Random(xc),Random(30),Pi*Random) ;
  51.    GetTime(Hour[2],Min[2],Sec[2],CentiSec[2]) ;
  52.    CloseGraph ;
  53.                                 { convert times to seconds }
  54.    for i := 0 to 3 do
  55.       Time[i] := (Hour[i] * 60.0 + Min[i]) * 60.0 +
  56.                      Sec[i] + CentiSec[i]/100.0 ;
  57.                                 { compute average drawing times }
  58.     dTimePolygon := (Time[1] - Time[0])/nPolygon ;
  59.     dTimeStroke := (Time[2] - Time[1])/nPolygon ;
  60.  
  61.    writeln (output,'Polygon: ',dTimePolygon:8:5,'   ',
  62.                    'Stroke: ',dTimeStroke:8:5)
  63.  
  64. end.
  65.  
  66. { Copyright (C) 1989 Adam Fritz, 133 Main St., Afton, N.Y. 13730 }
  67.