找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3616|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語言計(jì)算凸輪源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:585024 發(fā)表于 2019-7-17 17:07 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {  int  r0=20,  r1=10;
  5.   double  a,b,c,m,d,x,y,x1,y1,s,h;

  6.   for( a=0;a>=0&&a<=360;a=a+5)
  7.   {  if(a>=0&&a<=120)
  8.     {  s=30*a/180;    m=(atan2(30,((r0+s)*3.14))*180)/3.14;
  9.        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);
  10.     x=(r0+s)*sin(3.14*a/180);
  11.        y=(r0+s)*cos(3.14*a/180);
  12.         d=b/sqrt(b*b+c*c);  h=-c/sqrt(b*b+c*c);
  13.         x1=x-r1*h;     y1=y-r1*d;
  14.     printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
  15.      if(a>120&&a<=180)
  16. {  s=20;     m=0;
  17.       b=(r0+s)*cos(3.14*a/180);    c=-(r0+s)*sin(3.14*a/180);
  18.   //b=-320*a/(180*3.14)*sin(3.14+3.14*a/180)+(r0+s)*cos(3.14+3.14*a/180)
  19.   x=(r0+s)*sin(3.14*a/180);
  20.         y=(r0+s)*cos(3.14*a/180);
  21.         d=b/sqrt(b*b+c*c);  h=-c/sqrt(b*b+c*c);
  22.          x1=x-r1*h;     y1=y-r1*d;
  23.   printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
  24.   if(a>180&&a<=225)
  25. {  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;
  26.       b=-320*(a-180)/(180*3.14)*sin(3.14*a/180)+(r0+s)*cos(3.14*a/180);
  27.          c=-320*(a-180)/(180*3.14)*cos(3.14*a/180)-(r0+s)*sin(3.14*a/180);
  28.    x=(r0+s)*sin(3.14*a/180);
  29.          y=(r0+s)*cos(3.14*a/180);
  30.          d=b/sqrt(b*b+c*c);  h=-c/sqrt(b*b+c*c);
  31.          x1=x-r1*h;     y1=y-r1*d;
  32.    printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
  33.   if(a>225&&a<=270)
  34. {  s=40*((315-a)/90)*((315-a)/90);
  35.       m=(atan2(160*(315-a),90*3.14*(r0+s)))*180/3.14;
  36.    b=-160*(a-315)/(90*3.14)*sin(3.14*(a-45)/180)+(r0+s)*cos(3.14*(a-45)/180);
  37.    c=-160*(a-315)/(90*3.14)*cos(3.14*(a-45)/180)-(r0+s)*sin(3.14*(a-45)/180);
  38.    x=(r0+s)*sin(3.14*a/180);
  39.          y=(r0+s)*cos(3.14*a/180);
  40.          d=b/sqrt(b*b+c*c);  h=-c/sqrt(b*b+c*c);
  41.          x1=x-r1*h;     y1=y-r1*d;
  42.           printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
  43.   if(a>270&&a<=360)
  44. {  s=0;  m=0;
  45.       b=(r0+s)*cos(3.14*a/180);
  46.    c=-(r0+s)*sin(3.14*a/180);
  47.    x=(r0+s)*sin(3.14*a/180);
  48.           y=(r0+s)*cos(3.14*a/180);
  49.          d=b/sqrt(b*b+c*c);  h=-c/sqrt(b*b+c*c);
  50.          x1=x-r1*h;     y1=y-r1*d;
  51.     printf("%f\t%f\t%f\t%f\t%f\t%f\n",a,x,y,x1,y1,m);}
  52.   }
  53.   return 0;
  54.   
  55. }

復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表