All pastes #224087 Raw Edit

Something

public text v1 · immutable
#224087 ·published 2006-10-27 06:43 UTC
rendered paste body
#include<math.h>
#include<winbgim.h>
#include<stdio.h>

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(aend<ast)
       {
        aend=aend+360;           
       }
      for(double a=ast;a<aend;a=a+aincr)
       {
        int ap,aq;
        ap=ar*cos(a*3.142/180);                 
        aq=ar*sin(a*3.142/180);                
        if(acx+ap>104 && 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);
  }
}