#include <graphics.h>
#include <conio.h>
#include <stdio.h>
class Coord
{
public:
int x;
int y;
int vis;
Coord(int x = 0, int y = 0);
virtual void draw() = 0;
};
Coord::Coord(int _x, int _y)
: x(_x)
, y(_y)
, vis(1)
{
}
class Point : public Coord
{
public:
Point(int x = 0, int y = 0);
virtual void draw();
};
Point::Point(int x, int y)
: Coord(x, y)
{
}
void Point::draw()
{
if (vis)
putpixel(x, y, WHITE);
}
class Circle : public Coord
{
public:
int r;
Circle(int x = 0, int y = 0, int r = 0);
virtual void draw();
};
Circle::Circle(int _x, int _y, int _r)
: Coord(_x, _y)
, r(_r)
{
}
void Circle::draw()
{
if (vis)
circle(x, y, r);
}
class Arc : public Circle
{
public:
int sa;
int ea;
Arc(int x = 0, int y = 0, int r = 0, int sa = 0, int ea = 0);
virtual void draw();
};
Arc::Arc(int x, int y, int r, int _sa, int _ea)
: Circle(x, y, r)
, sa(_sa)
, ea(_ea)
{
}
void Arc::draw()
{
if (vis)
arc(x, y, sa, ea, r);
}
int main()
{
int gd = DETECT;
int gm;
initgraph(&gd, &gm, "../bgi");
Point p(50, 50);
Circle c(100, 50, 25);
Arc a(200, 35, 25, 0, 100);
p.draw();
c.draw();
a.draw();
getch();
cleardevice();
p.x = 100;
c.r = 50;
a.vis = 0;
p.draw();
c.draw();
a.draw();
getch();
closegraph();
restorecrtmode();
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.