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

  1. { Copyright (C) 1989 Adam Fritz, 133 Main St., Afton, N.Y. 13730 }
  2.  
  3. program BenchParabola (output) ;
  4.  
  5.      { BnchPara - compare stroke parabola and BGI parabola   }
  6.      {            generation times                         }
  7.  
  8. uses GRAPH, DOS ;
  9.  
  10. {~~~~~~~~~~~~~~~~~~~~ parabola routine ~~~~~~~~~~~~~~~~~~~~~}
  11.  
  12. {$I conic.pas }
  13.  
  14. {-$I paramb.pas }
  15. {$I parambr.pas }
  16. {-$I parara.pas }
  17. {-$I pararaf.pas }
  18.  
  19. {~~~~~~~~~~~~~~~~~~~~~ main program ~~~~~~~~~~~~~~~~~~~~~~~}
  20.  
  21. const
  22.    nParabola = 100 ;
  23.  
  24. var
  25.    i : integer ;
  26.    xf,yf : integer ;
  27.    Hour,Min,Sec,CentiSec : array[0..2] of word ;
  28.    Time : array[0..2] of single ;
  29.    dTimeParabola,dTimeStroke : single ;
  30.    grDetect,grMode : integer ;
  31.  
  32. begin
  33.    grDetect := Detect ;
  34.    InitGraph(grDetect,grMode,'') ;
  35.    xf := (GetMaxX + 1) shr 1 ;
  36.    yf := (GetMaxY + 1) shr 1 ;
  37.    Randomize ;
  38.    GetTime(Hour[0],Min[0],Sec[0],CentiSec[0]) ;
  39.                                 { TURBO Bresenham }
  40. {
  41.    ClearDevice ;
  42.    for i := 1 to nParabola do
  43.       Parabola(xf,yf,Pi*Random) ;
  44. }
  45.    GetTime(Hour[1],Min[1],Sec[1],CentiSec[1]) ;
  46.                                 { stroke parabola }
  47.    ClearDevice ;
  48.    for i := 1 to nParabola do
  49.       StrokeParabola(Random(GetMaxX),Random(GetMaxY),
  50.                        Random(xf),2.0*Pi*Random) ;
  51.    GetTime(Hour[2],Min[2],Sec[2],CentiSec[2]) ;
  52.    CloseGraph ;
  53.                                 { convert times to seconds }
  54.    for i := 0 to 2 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.    dTimeParabola := (Time[1] - Time[0])/nParabola ;
  59.    dTimeStroke := (Time[2] - Time[1])/nParabola ;
  60.  
  61.    writeln (output,'Parabola: ',dTimeParabola: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.