home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / OTHERUTI / TCPP10-7.ZIP / EXAMPLES.ZIP / FIGDEMO.CPP < prev    next >
Text File  |  1990-09-26  |  2KB  |  61 lines

  1. // FIGDEMO.CPP -- Exercise for Chapter 5
  2.  
  3. // demonstrates the Figures toolbox by extending it with
  4. // a new type Arc.
  5.  
  6. // Link with FIGURES.OBJ and GRAPHICS.LIB
  7.  
  8. #include "figures.h"
  9. #include <graphics.h>
  10. #include <conio.h>
  11.  
  12. class Arc : public Circle {
  13.    int StartAngle;
  14.    int EndAngle;
  15. public:
  16. // constructor
  17.    Arc(int InitX, int InitY, int InitRadius, int InitStartAngle, int
  18.        InitEndAngle) : Circle (InitX, InitY, InitRadius) {
  19.        StartAngle = InitStartAngle; EndAngle = InitEndAngle;}
  20.    void Show();  // these functions are virtual in Point
  21.    void Hide();
  22. };
  23.  
  24. // Member functions for Arc
  25.  
  26. void Arc::Show() 
  27. {
  28.    Visible = true;
  29.    arc(X, Y, StartAngle, EndAngle, Radius);
  30. }
  31.  
  32. void Arc::Hide()
  33. {
  34.    int TempColor;
  35.    TempColor = getcolor();
  36.    setcolor (getbkcolor());
  37.    Visible = false;
  38.    // draw arc in background color to hide it
  39.    arc(X, Y, StartAngle, EndAngle, Radius);
  40.    setcolor(TempColor);
  41. }
  42.  
  43. int main()   // test the new Arc class
  44. {
  45.    int graphdriver = DETECT, graphmode;
  46.    initgraph(&graphdriver, &graphmode, "..\\bgi");
  47.    Circle ACircle(151, 82, 50);
  48.    Arc AnArc(151, 82, 25, 0, 190);
  49.  
  50.    // you first drag an arc using arrow keys (5 pixels per key)
  51.    // press Enter when tired of this!
  52.    // Now drag a circle (10 pixels per arrow key)
  53.    // Press Enter to end FIGDEMO.
  54.  
  55.    AnArc.Drag(5);   // drag increment is 5 pixels
  56.    AnArc.Hide();
  57.    ACircle.Drag(10); // now each drag is 10 pixels
  58.    closegraph();
  59.    return 0;
  60. }
  61.