Está en la página 1de 5

//Clase circulo vista en clase

#include <winbgim.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>

using namespace std;

class circulo
{
private:

int x,y;
int ver;

protected:
float radio;

public:
circulo(int ox=100,int oy=100,float orad=50)
{
x=ox;
y=oy;
radio=orad;
ver=0;
}
int dar_ver()
{
return ver;
}

float area()
{
return (3.1416*radio*radio);
}

float perimetro()
{
return(3.1416*2*radio);
}

float VerRadio()
{
return radio;
}
int VerX()
{
return x;
}

int VerY()
{
return y;
}

virtual void pintar()


{
ver=1;
circle(x,y,(int)radio);
}

void ocultar()
{
unsigned int gc=getcolor();
if(ver)
{
setcolor(getbkcolor());
circle(x,y,(int)radio);
ver=0;
setcolor(gc);
}

}
void trasladar(int nx,int ny)
{
if(ver)
{
ocultar();
x=nx;
y=ny;
pintar();
}
else
{
x=nx;
y=ny;
}
}

};

class circulo_inflable:public circulo


{
public:
circulo_inflable(int ox1=150,int oy1=200,float or1=150):circulo(ox1,oy1,or1)
{
}
void inflar(float);
void desinflar(float);
};

class circulo_coloreado:public circulo


{
private:
int color;

public:
circulo_coloreado(int ox1=180,int oy1=200,float or1=100,int oc=RED):circulo(ox1,oy1,or1)
{
color=oc;
}
void pintar();
};

void circulo_inflable::inflar(float encuanto)


{
if(dar_ver())
{
ocultar();
radio=radio+encuanto;
pintar();
}
else
{
radio=radio+encuanto;
}

void circulo_inflable::desinflar(float encuanto)


{
inflar(-encuanto);
}

void circulo_coloreado::pintar()
{
unsigned gc=getcolor();
setcolor(color);
circulo::pintar();
setcolor(gc);
}
int main()
{
circulo c1(420,200,100.0);
circulo c2(300,370,20.3);
circulo c3;
circulo_inflable c4;
circulo_coloreado c5(300,200,100,YELLOW);

cout<<"\nEl aaaarea del circulo c2 es: "<<c2.area();


cout<<"\nEl perimetro del circlo c1 es :"<<c1.perimetro();
cout<<"\nEl valor x,y del circulo c3 es :"<<c3.VerX()<<","<<c3.VerY()<<"\nrespectivamente\n";
system("pause");

initwindow(1100,500);

settextstyle(0,0,2);
setcolor(YELLOW);
outtextxy(200,100,"Circulo ");
setcolor(WHITE);

c1.pintar();

c2.pintar();
getch();
c2.trasladar(200,170);
getch();

c3.pintar();

getch();

c3.ocultar();

getch();
c4.pintar();
getch();
for(int i=1;i<10;i++)
{
c4.inflar(i);
delay(50);
}
getch();
for(int i=1;i<10;i++)
{
c4.desinflar(i);
delay(50);
}
getch();
c5.pintar();
getch();
c5.trasladar(250,300);
getch();

closegraph(); //close graphics window


return 0;
}

También podría gustarte