home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / tcpp / examples / figdemo.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1990-06-10  |  1.6 KB  |  72 lines

  1. // FIGDEMO.CPP - Übung aus Kapitel 5
  2.  
  3. // Zeigt die Figuren-Toolbox, die durch eine
  4. // neuen Typ, den Bogen, erweitert wird
  5.  
  6. // mit FIGURES.OBJ und GRAPHICS.LIB linken
  7.  
  8. #include "figures.h"
  9. #include <graphics.h>
  10. #include <conio.h>
  11.  
  12. class Arc : public Circle
  13. {
  14.    int StartAngle;
  15.    int EndAngle;
  16.  
  17. public:
  18.    // Konstruktor
  19.    Arc(int InitX, int InitY, int InitRadius,
  20.        int InitStartAngle, int InitEndAngle)
  21.    : Circle (InitX, InitY, InitRadius)
  22.    { StartAngle = InitStartAngle;
  23.      EndAngle = InitEndAngle;
  24.    }
  25.    void Show();  // dies sind virtuelle 
  26.    void Hide();  //  Funktionen in Point
  27. };
  28.  
  29. // Elementfunktionen für Arc
  30.  
  31. void Arc::Show() 
  32. {
  33.    Visible = true;
  34.    arc(X, Y, StartAngle, EndAngle, Radius);
  35. }
  36.  
  37. void Arc::Hide()
  38. {
  39.    int TempColor;
  40.    TempColor = getcolor();
  41.    setcolor (getbkcolor());
  42.    Visible = false;
  43.  
  44.    // den Bogen in der Hintergrundfarbe
  45.    //  zeichnen, um ihn zu verbergen
  46.    arc(X, Y, StartAngle, EndAngle, Radius);
  47.    setcolor(TempColor);
  48. }
  49.  
  50. int main()   // die neue Bogenklasse testen
  51. {
  52.    int graphdriver = DETECT, graphmode;
  53.    initgraph(&graphdriver, &graphmode, "..\\bgi");
  54.    Circle ACircle(151, 82, 50);
  55.    Arc AnArc(151, 82, 25, 0, 190);
  56.  
  57.    /* Zuerst bewegen Sie mit den Pfeiltasten
  58.       einen Bogen (5 Pixel pro Taste).
  59.       Drücken Sie RETURN, wenn Sie das satt haben.
  60.       Danach bewegen Sie  einen Kreis (10 Pixel
  61.       pro Pfeiltaste).
  62.       Mit RETURN beenden Sie FIGDEMO.
  63.    */
  64.    AnArc.Drag(5);   // Inkrement ist 5 Pixel
  65.    AnArc.Hide();
  66.  
  67.    ACircle.Drag(10); // Nun 10 Pixel
  68.  
  69.    closegraph();
  70.    return 0;
  71. }
  72.