# include <iostream.h>
# include <graphics.h>
# include <conio.h>
# include <math.h>
void show_screen( );
void Circular_arc(constint,constint,constint,constint,constint);
int main( )
{
int driver=VGA;
int mode=VGAHI;
int h=0;
int k=0;
int r=0;
int s=0;
int e=0;
do
{
show_screen( );
gotoxy(8,10);
cout<<"Central Point of the Arc : (h,k) :";
gotoxy(8,11);
cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";
gotoxy(12,13);
cout<<"Enter the value of h = ";
cin>>h;
gotoxy(12,14);
cout<<"Enter the value of k = ";
cin>>k;
gotoxy(8,18);
cout<<"Radius of the Arc : r :";
gotoxy(8,19);
cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";
gotoxy(12,21);
cout<<"Enter the value of r = ";
cin>>r;
gotoxy(8,25);
cout<<"Starting & Ending Angle of Arc : (s,e) :";
gotoxy(8,26);
cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";
gotoxy(12,28);
cout<<"Enter the value of s = ";
cin>>s;
gotoxy(12,30);
cout<<"Enter the value of e = ";
cin>>e;
initgraph(&driver,&mode,"..\\Bgi");
setcolor(15);
Circular_arc(h,k,r,s,e);
setcolor(15);
outtextxy(110,460,"Press <Enter> to continue or any other key to exit.");
int key=int(getch( ));
if(key!=13)
break;
}
while(1);
return 0;
}
/*************************************************************************///-------------------------- Circular_arc( ) --------------------------///*************************************************************************/void Circular_arc(constint h,constint k,constint r,
constint start_angle,constint end_angle)
{
int color=getcolor( );
float angle=(((start_angle<=end_angle)?start_angle:end_angle)*(M_PI/180));
float range=(((end_angle>start_angle)?end_angle:start_angle)*(M_PI/180));
float x=(r*cos(angle));
float y=(r*sin(angle));
do
{
putpixel((int)(h+x+0.5),(int)(k-y+0.5),color);
angle+=0.001;
x=(r*cos(angle));
y=(r*sin(angle));
}
while(angle<=range);
}
/*************************************************************************///-------------------------- show_screen( ) ---------------------------///*************************************************************************/void show_screen( )
{
restorecrtmode( );
textmode(C4350);
cprintf("\n********************************************************************************");
cprintf("*******************************- -*******************************");
cprintf("*------------------------------- ");
textbackground(1);
cprintf(" Circular Arc ");
textbackground(8);
cprintf(" -------------------------------*");
cprintf("*-*****************************- -*****************************-*");
cprintf("*-****************************************************************************-*");
for(int count=0;count<42;count++)
cprintf("*-* *-*");
gotoxy(1,46);
cprintf("*-****************************************************************************-*");
cprintf("*------------------------------------------------------------------------------*");
cprintf("********************************************************************************");
gotoxy(1,2);
}