#include #include #include int acolour,athick,acount=0,acx,acy,ar,arx,ary; double ast,aend,aincr=0.05; void arcpoints(int x,int y); void draw(int x,int y); extern int colour,thick; void drawarc(int colour,int thick) { registermousehandler(WM_LBUTTONDOWN,arcpoints); } void arcpoints(int x,int y) { if(x>104 && x<750 && y>51 && y<439) { acolour=colour; athick=thick; if(acount==0) { acx=x; acy=y; setcolor(GREEN); pieslice(x,y,0,360,2); acount++; printf("centre\n"); } else if(acount==1) { if(x>acx) arx=x-acx; else arx=acx-x; if(y>acy) ary=y-acy; else ary=acy-y; ar=(int)sqrt(arx*arx+ary*ary); acount++; printf("radius %d \n",ar); } if(acount==2) { printf("enter the starting and end angle of arc\n"); scanf("%lf %lf",&ast,&aend); if(aend104 && acx+ap<750 && acy-aq>51 && acy-aq<439) putpixel(acx+ap,acy-aq,acolour); for(int t=1;t<=athick/2;t++) { if(acx+ap+t>104 && acx+ap+t<750 && acy-aq+t>51 && acy-aq+t<439) putpixel(acx+ap+t,acy-aq+t,acolour); } for(int t=0;t<=athick/2;t++) { if(acx+ap+t>104 && acx+ap+t<750 && acy-aq-t>51 && acy-aq-t<439) putpixel(acx+ap+t,acy-aq-t,acolour); } } acount=0; } } else { acount=0; draw(x,y); } }