標(biāo)題:
C語言計算凸輪源程序
[打印本頁]
作者:
qhb
時間:
2019-7-17 17:07
標(biāo)題:
C語言計算凸輪源程序
#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;
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1