- #include <stdio.h>
- #include <math.h>
- int main()
- { int r0=20, r1=10;
- double a,b,c,m,d,x,y,x1,y1,s,h;
- for( a=0;a>=0&&a<=360;a=a+5)
- { if(a>=0&&a<=120)
- { s=30*a/180; m=(atan2(30,((r0+s)*3.14))*180)/3.14;
- b=30*sin(3.14*a/180)/3.14+(r0+s)*cos(3.14*a/180); c=30*cos(3.14*a/180)/3.14-(r0+s)*sin(3.14*a/180);
- x=(r0+s)*sin(3.14*a/180);
- y=(r0+s)*cos(3.14*a/180);
- d=b/sqrt(b*b+c*c); h=-c/sqrt(b*b+c*c);
- x1=x-r1*h; y1=y-r1*d;
- printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
- if(a>120&&a<=180)
- { s=20; m=0;
- b=(r0+s)*cos(3.14*a/180); c=-(r0+s)*sin(3.14*a/180);
- //b=-320*a/(180*3.14)*sin(3.14+3.14*a/180)+(r0+s)*cos(3.14+3.14*a/180)
- x=(r0+s)*sin(3.14*a/180);
- y=(r0+s)*cos(3.14*a/180);
- d=b/sqrt(b*b+c*c); h=-c/sqrt(b*b+c*c);
- x1=x-r1*h; y1=y-r1*d;
- printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
- if(a>180&&a<=225)
- { s=20-160*(a*3.14/180-3.14)/(3.14*3.14); m=(atan2((320*(a*3.14-180*3.14)),(r0+s)*180*3.14*3.14))*180/3.14;
- b=-320*(a-180)/(180*3.14)*sin(3.14*a/180)+(r0+s)*cos(3.14*a/180);
- c=-320*(a-180)/(180*3.14)*cos(3.14*a/180)-(r0+s)*sin(3.14*a/180);
- x=(r0+s)*sin(3.14*a/180);
- y=(r0+s)*cos(3.14*a/180);
- d=b/sqrt(b*b+c*c); h=-c/sqrt(b*b+c*c);
- x1=x-r1*h; y1=y-r1*d;
- printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
- if(a>225&&a<=270)
- { s=40*((315-a)/90)*((315-a)/90);
- m=(atan2(160*(315-a),90*3.14*(r0+s)))*180/3.14;
- b=-160*(a-315)/(90*3.14)*sin(3.14*(a-45)/180)+(r0+s)*cos(3.14*(a-45)/180);
- c=-160*(a-315)/(90*3.14)*cos(3.14*(a-45)/180)-(r0+s)*sin(3.14*(a-45)/180);
- x=(r0+s)*sin(3.14*a/180);
- y=(r0+s)*cos(3.14*a/180);
- d=b/sqrt(b*b+c*c); h=-c/sqrt(b*b+c*c);
- x1=x-r1*h; y1=y-r1*d;
- printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
- if(a>270&&a<=360)
- { s=0; m=0;
- b=(r0+s)*cos(3.14*a/180);
- c=-(r0+s)*sin(3.14*a/180);
- x=(r0+s)*sin(3.14*a/180);
- y=(r0+s)*cos(3.14*a/180);
- d=b/sqrt(b*b+c*c); h=-c/sqrt(b*b+c*c);
- x1=x-r1*h; y1=y-r1*d;
- printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
- }
- return 0;
-
- }
復制代碼
|