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

  1. { Copyright (C) 1989 Adam Fritz, 133 Main St., Afton, N.Y. 13730 }
  2.  
  3. program BenchHyperbola (output) ;
  4.  
  5.      { BnchHypr - compute average timing performance of    }
  6.      {            stroke hyperbola routines                }
  7.  
  8. uses GRAPH, DOS ;
  9.  
  10. {~~~~~~~~~~~~~~~~~~ hyperbola routines ~~~~~~~~~~~~~~~~~~~~}
  11.  
  12. {$I conic.pas }
  13.  
  14. {-$I hyprda.pas }
  15. {-$I hyprdaf.pas }
  16. {-$I hyprdam.pas }
  17. {$I hyprdamg.pas }
  18. {-$I hyprmb.pas }
  19. {-$I hyprmbr.pas }
  20. {-$I hyprra.pas }
  21. {-$I hyprraf.pas }
  22. {-$I hyprram.pas }
  23.  
  24. {~~~~~~~~~~~~~~~~~~~~~ main program ~~~~~~~~~~~~~~~~~~~~~~~}
  25.  
  26. const
  27.    nHyperbola = 100 ;
  28.  
  29. var
  30.    i : integer ;
  31.    xc,yc : integer ;
  32.    Hour,Min,Sec,CentiSec : array[0..2] of word ;
  33.    Time : array[0..2] of single ;
  34.    dTimeHyperbola,dTimeStroke : single ;
  35.    grDetect,grMode : integer ;
  36.  
  37. begin
  38.    grDetect := Detect ;
  39.    InitGraph(grDetect,grMode,'') ;
  40.    xc := (GetMaxX + 1) shr 1 ;
  41.    yc := (GetMaxY + 1) shr 1 ;
  42.    Randomize ;
  43.    GetTime(Hour[0],Min[0],Sec[0],CentiSec[0]) ;
  44.                                 { TURBO BGI ? }
  45. {
  46.    ClearDevice ;
  47.    for i := 1 to nHyperbola do
  48.       Hyperbola(xc,yc,0,360,Random(xc),Random(yc)) ;
  49. }
  50.    GetTime(Hour[1],Min[1],Sec[1],CentiSec[1]) ;
  51.                                 { stroke hyperbola }
  52.    ClearDevice ;
  53.    for i := 1 to nHyperbola do
  54.       StrokeHyperbola(Random(GetMaxX),Random(GetMaxY),
  55.                         Random(xc),Random(yc),Pi*Random) ;
  56.    GetTime(Hour[2],Min[2],Sec[2],CentiSec[2]) ;
  57.    CloseGraph ;
  58.                                 { convert times to seconds }
  59.    for i := 0 to 2 do
  60.       Time[i] := (Hour[i] * 60.0 + Min[i]) * 60.0 +
  61.                      Sec[i] + CentiSec[i]/100.0 ;
  62.                                 { compute average drawing times }
  63.    dTimeHyperbola := (Time[1] - Time[0])/nHyperbola ;
  64.    dTimeStroke := (Time[2] - Time[1])/nHyperbola ;
  65.  
  66.    writeln (output,'Hyperbola: ',dTimeHyperbola:8:5,'   ',
  67.                    'Stroke: ',dTimeStroke:8:5)
  68.  
  69. end.
  70.  
  71. { Copyright (C) 1989 Adam Fritz, 133 Main St., Afton, N.Y. 13730 }
  72.