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

  1. { Copyright (C) 1989 Adam Fritz, 133 Main St., Afton, N.Y. 13730 }
  2.  
  3. program StrokePolygonDemo ;
  4.  
  5.      {    DemoPoly - draw regular polygon with given radius, }
  6.      {               number of sides, and rotation angle.    }
  7.  
  8. uses GRAPH ;
  9.  
  10. {~~~~~~~~~~~~~~~~~~~~ polygon routine ~~~~~~~~~~~~~~~~~~~~~}
  11.  
  12. {$I conic.pas }
  13.  
  14. {-$I polyra.pas }
  15. {-$I polyraf.pas }
  16. {-$I polyda.pas }
  17. {$I polydaf.pas }
  18.  
  19. {~~~~~~~~~~~~~~~~~~~~~ main program ~~~~~~~~~~~~~~~~~~~~~~~}
  20.  
  21. var
  22.    grDriver,grMode  : integer ; { graph control parameters }
  23.    r                : word ;    { polygon radius }
  24.    n                : word ;    { number of sides }
  25.    ta,tad           : single ;  { rotation angle }
  26.    xc, yc           : integer ; { polygon center }
  27.  
  28. begin
  29.                                 { prompt for radius }
  30.    repeat
  31.       write ('Radius: ') ;
  32.       readln (r)
  33.    until (r > 0) ;
  34.                                 { prompt for number of sides }
  35.    repeat
  36.       write ('Number of sides: ') ;
  37.       readln (n)
  38.    until (n > 2) ;
  39.                                 { prompt for rotation angle }
  40.    repeat
  41.       write ('Rotation angle (deg): ') ;
  42.       readln (tad)
  43.    until (tad >= 0.0) and (tad <  360.0) ;
  44.    ta := tad / 180.0 * Pi ;
  45.                                 { initiate graphics }
  46.    grDriver := Detect ;
  47.    InitGraph(grDriver,grMode,'') ;
  48.                                 { center of display }
  49.    xc := (GetMaxX+1) div 2 ;
  50.    yc := (GetMaxY+1) div 2 ;
  51.                                 { draw polygon }
  52.    StrokePolygon(xc,yc,r,n,ta) ;
  53.                                 { leak test }
  54.    FloodFill(xc,yc,GetMaxColor) ;
  55.                                 { pause }
  56.    readln ;
  57.    CloseGraph
  58.  
  59. end.
  60.  
  61. { Copyright (C) 1989 Adam Fritz, 133 Main St., Afton, N.Y. 13730 }
  62.