C语言机械原理编程连杆运动分析图线.docx
- 文档编号:25036250
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:27
- 大小:119.85KB
C语言机械原理编程连杆运动分析图线.docx
《C语言机械原理编程连杆运动分析图线.docx》由会员分享,可在线阅读,更多相关《C语言机械原理编程连杆运动分析图线.docx(27页珍藏版)》请在冰豆网上搜索。
C语言机械原理编程连杆运动分析图线
编程大作业
基于C语言的机械原理分析图:
只有库函数包含头文件:
graphics.h
conio.h
才能观看该程序效果;
若已经安装VC++,可以打开文件夹里面的EasyX压缩包,并安装EasyX文件,也可以观看程序效果;
一、角度与l3与角1的关系;
#include
#include
#include
#include
#defineSZ2
#definePI3.1415926
floatc[SZ][SZ]={0};
voiddanwei()
{
chars[5];
inti=0;
intk=-5;
while(k<=600)
{
sprintf(s,"%d",i);
outtextxy(k,5,s);
k+=75;
i+=45;
}
outtextxy(280,25,"θ1/度");
}
voiddanwei2()
{
chars[10];
floati=-0.1;
intk=-10;
while(k>=-400)
{
sprintf(s,"%0.2f",i);
outtextxy(610,k,s);
k-=40;
i+=0.05;
}
outtextxy(610,-420,"l3/m/s");
}
voiddanwei1()
{
chars[10];
inti=-60;
intk=-10;
while(k>=-400)
{
sprintf(s,"%d",i);
outtextxy(-30,k,s);
k-=20;
i+=10;
}
outtextxy(-85,-420,"θ2、θ3/度");
}
intmain()
{
//创建大小为800*600的绘图窗口
initgraph(800,600);
//设置原点(0,0)为屏幕中央(Y轴默认向下为正)
setorigin(100,500);
//使用白色填充背景
setbkcolor(WHITE);
cleardevice();
setlinecolor(RGB(7,190,234));
rectangle(0,-400,600,0);
inti,j;
//网格线
for(i=0;i<600;i=i+20)
line(i,0,i,-400);
for(j=0;j<400;j=j+20)
line(0,-j,600,-j);
//输出屏幕提示
settextcolor(BLACK);
setfont(18,0,"宋体");
danwei();
danwei1();
settextcolor(RED);
danwei2();
settextcolor(RGB(201,62,0));
outtextxy(240,-450,"角度关系图");
floato3,o1,o2,w1=10;
floattemp1;
floatl1=0.100,l2=0.040,l4=0.200;
floatl3,m,m1,A,B,C,D;
floata[2][2]={0},b[2][1]={0},a1[2][2]={0};
floatk,t,m10=0,t10=-16.2602*40/20-120,m11=0,
t11=(-(16.2602+90))*40/20-120,m12=0,t12=-0.22*40/(0.05)-80;
floatn=0;
while(n<=360)
{
o1=n*PI/180;
A=l1*sin(o1)-l4;
B=l1*cos(o1);
C=-l2;
D=(A+sqrt(pow(A,2)+pow(B,2)-pow(C,2)))/(B-C);
o2=2*atan(D);
m=o2*180/PI;
l3=(l1*cos(o1)-l2*cos(o2))/sin(o2);
k=m;
m1=n*600/360;
t=-k*40/20-120;
setcolor(BLACK);
line(m10,t10,m1,t);
m10=m1,t10=t;
k=m+90;
m1=n*600/360;
t=-k*40/20-120;
setcolor(GREEN);
line(m11,t11,m1,t);
m11=m1,t11=t;
k=l3;
m1=n*600/360;
t=-k*40/(0.05)-80;
setcolor(MAGENTA);
line(m12,t12,m1,t);
m12=m1,t12=t;
n+=0.1;
}
settextcolor(GREEN);
outtextxy(160,-80,"θ2");
outtextxy(160,-180,"L3");
outtextxy(160,-260,"θ3");
outtextxy(500,60,"莫智斌/2014124066");
getch();
closegraph();
return0;
}
二、角速度、vl3与角一的关系;
#include
#include
#include
#include
#defineSZ2
#definePI3.1415926
floatc[SZ][SZ]={0};
voidmatrixmultiplication(floata_2[2][2],floatb_2[2][1],floaty[2][1])
{
inti,j,k,a_column=2,a_row=2,b_row=1;
floattemp;
for(i=0;i { for(j=0;j {temp=0; for(k=0;k { temp+=a_2[i][k]*b_2[k][j]; } y[i][j]=temp; } } } voiddanwei()//横坐标 { chars[5]; inti=0; intk=-5; while(k<=600) { sprintf(s,"%d",i); outtextxy(k,5,s); k+=75; i+=45; } outtextxy(280,25,"θ1/度"); } voiddanwei2()//右边的纵坐标 { chars[10]; floati=-2; intk=-10; while(k>=-400) { sprintf(s,"%0.2f",i); outtextxy(610,k,s); k-=40; i+=0.5; } outtextxy(610,-420,"Vl3/m/s"); } voiddanwei1()//左边边的纵坐标 { chars[10]; inti=-14; intk=-10; while(k>=-400) { sprintf(s,"%d",i); outtextxy(-30,k,s); k-=40; i+=2; } outtextxy(-85,-420,"w2&w3/rad/s"); } voidqiuni(floata_1[2][2],floatni[2][2]) { intN=2; inti,j,k; floatc[SZ][SZ]={0}; floata[SZ][SZ]={0}; for(i=0;i<2;i++) for(j=0;j<2;j++) { a[i][j]=a_1[i][j]; } floatb[SZ][2*SZ]={0}; floatt; for(i=0;i for(j=0;j b[i][j]=a[i][j]; for(i=0;i for(j=N;j<2*N;j++) b[i][j]=0; for(i=0;i b[i][N+i]=1; for(k=0;k { t=b[k][k]; i=k; while(b[k][k]==0) { b[k][k]=b[i+1][k]; i++; if(i>k) { b[i][k]=t; } for(j=0;j { t=b[k][j]; b[k][j]=b[i][j]; b[i][j]=t; } for(j=k+1;j<2*N;j++) { t=b[k][j]; b[k][j]=b[i][j]; b[i][j]=t; } } for(i=k+1;i for(j=2*N-1;j>=k;j--) { b[i][j]-=(b[k][j]/b[k][k])*b[i][k]; } for(j=2*N-1;j>=k;j--) b[k][j]/=b[k][k]; } //第二步转化 k=N-1; while(k>0) { for(i=0;i for(j=2*N-1;j>=k;j--) { b[i][j]-=b[i][k]*b[k][j]; } k--; } for(i=0;i for(j=0;j { c[i][j]=b[i][N+j]; } for(i=0;i<2;i++) for(j=0;j<2;j++) { ni[i][j]=c[i][j]; } } intmain() { //创建大小为800*600的绘图窗口 initgraph(800,600); //设置原点(0,0)为屏幕中央(Y轴默认向下为正) setorigin(100,500); //使用白色填充背景 setbkcolor(WHITE); cleardevice(); setlinecolor(RGB(7,190,234)); rectangle(0,-400,600,0); inti,j; //网格线 for(i=0;i<600;i=i+20) line(i,0,i,-400); for(j=0;j<400;j=j+20) line(0,-j,600,-j); //输出屏幕提示 settextcolor(BLACK); setfont(18,0,"宋体"); danwei(); danwei1(); settextcolor(RED); danwei2(); settextcolor(RGB(201,62,0)); outtextxy(240,-450,"角速度、速度关系图"); floato3,o1,o2,w1=10; floattemp1; floatl1=0.100,l2=0.040,l4=0.200; floatl3,m,m1,A,B,C,D; floata[2][2]={0},b_1[2][1]={0},a1[2][2]={0}; floatni[2][2]={0}; floatx[2][1]={0}; floatk,t,m10=0,t10=-1.2727*40/2-280,m12=0,t12=0.909*40/(0.5)-160; floatn=0; while(n<=360) { o1=n*PI/180; A=l1*sin(o1)-l4; B=l1*cos(o1); C=-l2; D=(A+sqrt(pow(A,2)+pow(B,2)-pow(C,2)))/(B-C); o2=2*atan(D); m=o2*180/PI; l3=(l1*cos(o1)-l2*cos(o2))/sin(o2); a[0][0]=sin(o2);a[0][1]=l3*cos(o2)-l2*sin(o2);//赋值矩阵 a[1][0]=-cos(o2);a[1][1]=l3*sin(o2)+l2*cos(o2); b_1[0][0]=-l1*sin(o1);b_1[1][0]=l1*cos(o1); qiuni(a,ni); matrixmultiplication(ni,b_1,x); for(i=0;i<2;i++) x[i][0]=10*x[i][0]; k=x[1][0]; m1=n*600/360; t=-k*40/2-280; setcolor(BLACK); line(m10,t10,m1,t); m10=m1,t10=t; k=x[0][0]; m1=n*600/360; t=-k*40/(0.5)-160; setcolor(MAGENTA); line(m12,t12,m1,t); m12=m1,t12=t; n+=0.1; } settextcolor(GREEN); outtextxy(130,-110,"V3"); outtextxy(120,-200,"w3、w4"); outtextxy(500,60,"莫智斌/2014124066"); getch(); closegraph(); return0; } 三、角加速度、al3与角一的关系; #include #include #include #include #defineSZ2 #definePI3.1415926 floatc[SZ][SZ]={0}; voidmatrixmultiplication(floata_2[2][2],floatb_2[2][1],floaty[2][1]) { inti,j,k,a_column=2,a_row=2,b_row=1; floattemp; for(i=0;i { for(j=0;j {temp=0; for(k=0;k { temp+=a_2[i][k]*b_2[k][j]; } y[i][j]=temp; } } } voiddanwei()//横坐标 { chars[5]; inti=0; intk=-5; while(k<=600) { sprintf(s,"%d",i); outtextxy(k,5,s); k+=75; i+=45; } outtextxy(280,25,"θ1/度"); } voiddanwei2()//右边的纵坐标 { chars[10]; inti=-8; intk=-10; while(k>=-400) { sprintf(s,"%d",i); outtextxy(610,k,s); k-=40; i+=3; } outtextxy(610,-420,"al3/m/s"); } voiddanwei1()//左边边的纵坐标 { chars[10]; inti=-150; intk=-10; while(k>=-400) { sprintf(s,"%d",i); outtextxy(-38,k,s); k-=40; i+=33; } outtextxy(-85,-420,"a2&a3/rad/s"); } voidqiuni(floata_1[2][2],floatni[2][2]) { intN=2; inti,j,k; floatc[SZ][SZ]={0}; floata[SZ][SZ]={0}; for(i=0;i<2;i++) for(j=0;j<2;j++) { a[i][j]=a_1[i][j]; } floatb[SZ][2*SZ]={0}; floatt; for(i=0;i for(j=0;j b[i][j]=a[i][j]; for(i=0;i for(j=N;j<2*N;j++) b[i][j]=0; for(i=0;i b[i][N+i]=1; for(k=0;k { t=b[k][k]; i=k; while(b[k][k]==0) { b[k][k]=b[i+1][k]; i++; if(i>k) { b[i][k]=t; } for(j=0;j { t=b[k][j]; b[k][j]=b[i][j]; b[i][j]=t; } for(j=k+1;j<2*N;j++) { t=b[k][j]; b[k][j]=b[i][j]; b[i][j]=t; } } for(i=k+1;i for(j=2*N-1;j>=k;j--) { b[i][j]-=(b[k][j]/b[k][k])*b[i][k]; } for(j=2*N-1;j>=k;j--) b[k][j]/=b[k][k]; } //第二步转化 k=N-1; while(k>0) { for(i=0;i for(j=2*N-1;j>=k;j--) { b[i][j]-=b[i][k]*b[k][j]; } k--; } for(i=0;i for(j=0;j { c[i][j]=b[i][N+j]; } for(i=0;i<2;i++) for(j=0;j<2;j++) { ni[i][j]=c[i][j]; } } intmain() { //创建大小为800*600的绘图窗口 initgraph(800,600); //设置原点(0,0)为屏幕中央(Y轴默认向下为正) setorigin(100,500); //使用白色填充背景 setbkcolor(WHITE); cleardevice(); setlinecolor(RGB(7,190,234)); rectangle(0,-400,600,0); inti,j; //网格线 for(i=0;i<600;i=i+20) line(i,0,i,-400); for(j=0;j<400;j=j+20) line(0,-j,600,-j); //输出屏幕提示 settextcolor(BLACK); setfont(18,0,"宋体"); danwei(); danwei1(); settextcolor(RED); danwei2(); settextcolor(RGB(201,62,0)); outtextxy(240,-450,"角加速度、加速度关系图"); floata[2][2]={0}; floatb_1[2][1]={0}; floatni[2][2]={0}; floato3,o1,o2,w1=10; floattemp; floatl1=0.100,l2=0.040,l4=0.200; floatl3,m,m1,A,B,C,D; floatx[2][1]={0}; floatw2,l3_1; floata_A[2][2]={0},a_C[2][1]={0},b_A[2][1]={0},b_B[2][1]={0},b_C[2][1]={0},jieguo[2][10]={0}; floatk,t,m10=0,t10=32.8234*40/33-181.818,m12=0,t12=3.75657*40/(3)-106.667; floatn=0; while(n<=360) { o1=n*PI/180; A=l1*sin(o1)-l4; B=l1*cos(o1); C=-l2; D=(A+sqrt(pow(A,2)+pow(B,2)-pow(C,2)))/(B-C); o2=2*atan(D); m=o2*180/PI; l3=(l1*cos(o1)-l2*cos(o2))/sin(o2); a[0][0]=sin(o2);a[0][1]=l3*cos(o2)-l2*sin(o2); a[1][0]=-cos(o2);a[1][1]=l3*sin(o2)+l2*cos(o2); b_1[0][0]=-l1*sin(o1);b_1[1][0]=l1*cos(o1); qiuni(a,ni); matrixmultiplication(ni,b_1,x); for(i=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 机械 原理 编程 连杆 运动 分析