Tuesday, May 25, 2010

Draw ellipse

#include
#include
#include
#include
#include
#include
#include
class myCircle
{
private:
int x,y,r,d,x1,y1,minor,major,dtheta,ratio,a,b,x2,y2;
public:
myCircle(); //Constructor
void showCircle();
};

myCircle::myCircle()
{
x=0;y=0;
cout<<" "Enter The Major & Minor Axis Of Ellipse ":="; cin>>major>>minor;
cout<<" "Enter The Center Of The Ellipse ":="; cin>>x>>y;
}

void myCircle::showCircle()
{
char *s;
int ax,ay;
float ar;
x1=1;
ratio=major/minor;
getaspectratio(&ax,&ay);
ar=1;
// ar=ay/ax;
while(x1<=major) { y1=minor*sqrt((1-(x1*x1/major*major))); putpixel((x+x1*ar+320),(y+y1+240),5); putpixel((x+x1*ar+320),(y-y1+240),5); putpixel((x-x1*ar+320),(y-y1+240),5); putpixel((x-x1*ar+320),(y+y1+240),5); dtheta=1/sqrt(x1*x1+y1*y1); // x2=x1+cos(dtheta)-ratio*y1*sin(dtheta); // y2=y1+cos(dtheta)+1/ratio*x1*sin(dtheta); x1++; // y1=y2; } setcolor(5); outtextxy(318+x,235+y,"."); setcolor(15); sprintf(s,"Center(%d,%d)",x,y); outtextxy(20,10,"The Center Is At"); outtextxy(20,20,s); sprintf(s,"Radius=%d",r); outtextxy(20,30,s); getch(); } void main() { int gd=DETECT,gm,i,j,xx=190,xxx=480; clrscr(); myCircle a; char *mess[]={"B","R","E","S","E","N","H","A","M","'","S"," ","C","I","R","C","L","E"," ","A","L","G","O","R","I","T","H","M"}; initgraph(&gd,&gm,"..\bgi"); cleardevice(); rectangle(120,40,320,240); rectangle(320,40,520,240); rectangle(120,240,320,440); rectangle(320,240,520,440); for(i=0,j=27;i<16,j>=14;i++,j--)
{
xx+=10;
outtextxy(xx,10,mess[i]);
xxx-=10;
outtextxy(xxx,10,mess[j]);
delay(100);
}
for(i=130;i<=510;i+=10)
for(j=50;j<=430;j+=10)
putpixel(i,j,15);
for(i=130;i<=510;i+=10)
{
if(i==320)
continue;
outtextxy(i,237,"+");
}
for(i=50;i<=430;i+=10)
{
if(i==240)
continue;
outtextxy(317,i,"-");
}
outtextxy(310,230,"O");
outtextxy(530,240,"X");
outtextxy(320,450,"-Y");
outtextxy(100,240,"-X");
outtextxy(320,30,"Y");
a.showCircle();
}

No comments:

Post a Comment