C语言知识学习模拟直线插补与圆弧插补程序设计_第1页
C语言知识学习模拟直线插补与圆弧插补程序设计_第2页
C语言知识学习模拟直线插补与圆弧插补程序设计_第3页
C语言知识学习模拟直线插补与圆弧插补程序设计_第4页
C语言知识学习模拟直线插补与圆弧插补程序设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数控技术课程设计说明书设计题目线插补与圆弧插补程序设计机械设计以及自动化专业机械工程学院机械102班设计者青岛理工大学2013年6月20日目 录1 .设计题目12 .目录23 .直线插补流程图34 .直线插补程序45 .程序结果86 .圆弧插补流程图9107 .圆弧插补程序8 .程序结果21一.直线插补1.直线插补程序流程图2.直线插补程序设计#include "stdio.h"int i,X,Y,X0,Y0,Xe,Ye,F,N;int a302;void main()int m;int menu();void yi();void er();void san();void

2、si();void te();void shuchu();m=menu();a00=X0;a01=Y0;switch(m)case 1:yi();shuchu();break;case 2:er();shuchu();break;case 3:san();shuchu();break;case 4:si();shuchu();break;case 5:te();shuchu();break;default:printf("无法插补 n");)int menu()(int t;printf("输入起点坐标n");scanf("%d,%cT'

3、;,&X0,&Y0);printf("输入终点坐标n");scanf("%d,%d",&Xe,&Ye);if (Xe>=X0&&Ye>=Y0)t=1;else if (Xe<=X0&&Ye>=Y0)t=2;else if (Xe<=X0&&Ye<=Y0)t=3;else if (Xe>=X0&&Ye<=Y0)t=4;else if (Xe=X0&&(Ye>Y0&&Y0>

4、=0)|(Ye<Y0&&Y<=0)t=5;elset=6;return(t);)void yi()(F=0;N=Xe-X0+Ye-Y0;X=X0;Y=Y0;for(i=1;i<=N;i+) if(F>=0)X+;ai0=X;ai1=Y;F-=Ye-Y0;elseY+;ai0=X;ai1=Y;F+=Xe-X0; void er()(F=0;N=X0-Xe+Ye-Y0;X=X0;Y=Y0;for(i=1;i<=N;i+)if(F>=0) X-;ai0=X;ai1=Y;F-=Ye-Y0;elseY+;ai0=X;ai1=Y;F+=X0-Xe;voi

5、d san()F=0;N=X0-Xe+Y0-Ye;X=X0;Y=Y0;for(i=1;i<=N;i+)if(F>=0)(X-;ai0=X;ai1=Y;F-=Y0-Ye;elseY-;ai0=X;ai1=Y;F+=X0-Xe;void si()F=0;N=Xe-X0+Y0-Ye;X=X0;Y=Y0;for(i=1;i<=N;i+)if(F>=0)X+;ai0=X;ai1=Y;F-=Y0-Ye;else Y-;ai0=X;ai1=Y;F+=Xe-X0;void te()N=Ye-Y0;for(i=1;i<=N;i+)if(Ye>0)Y+;ai0=X;ai1=Y;

6、else if(Ye<0)Y-;ai0=X;ai1=Y;void shuchu()for(i=0;i<=N;i+)printf("%d ",i);printf("%d,%dn",ai0,ai1);3.程序结果例如起点(0,0 )终点(6,4 )步数坐标11,021,12,142,253,264,274,385,396,3106,4二.圆弧插补1.圆弧插补程序流程图2.圆弧插补程序#include "stdio.h"#include "math.h"int X0,Y0,X1,Y1,X2,Y2,X3,Y3,

7、X4,Y4;int i=1,r,f,s;void main()(int m;int menu();void yishun();void yini();void ershun();void erni();void sanshun();void sanni();void sishun();void sini();void shuchu();m=menu();switch(m)(case 1:yishun();break;case 2:yini();break;case 3:ershun();break;case 4:yini();break;case 5:sanshun();break;case

8、6:yini();break;case 7:sishun();break;case 8:yini();break;default:printf("无法插补 n");)int menu()int t;printf("输入原点坐标n");scanf("%d,%d",&X0,&Y0);printf("输入起点坐标n");scanf("%d,%d",&X3,&Y3);printf("输入终点坐标n");scanf("%d,%d",&

9、amp;X4,&Y4);printf("1:顺时针圆弧n");printf("2:逆时针圆弧n");scanf("%d",&s);X1=X3-X0;Y1=Y3-Y0;X2=X4-X0Y2=Y4-Y0;r=X1*X1+Y1*Y1;if (X1>=0&&Y1>0&&s=1)t=1;else if (X1>0&&Y1>=0&&s=2) t=2;else if (X1<0&&Y1>=0&&s=1)

10、 t=3;else if (X1<=0&&Y1<0&&s=2) t=4;else if (X1<=0&&Y1<0&&s=1) t=5;else if (X1<0&&Y1<=0&&s=2) t=6;else if (X1>0&&Y1<=0&&s=1) t=7;else if (X1>=0&&Y1<0&&s=2)t=8;elset=9;return(t);void yishun()

11、(do(f=X1*X1+Y1*Y1-r;if(f>=0)(Y1-;f-=2*Y1+1;i+;printf("%d ",i);printf("%d,%dn”,X1,Y1);else(X1+;f+=2*X1+1;i+;printf("%d ",i);printf("%d,%dn”,X1,Y1);)while(Y1!=0&&(X1!=X2|Y1!=Y2);if(Y1=0)(void sishun();sishun();)void yini()(do(f=X1*X1+Y1*Y1-r;if(f>=0)(X1-;f-=

12、2*X1+1;i+;printf("%d ",i);printf("%d,%dn”,X1,Y1);)else(Y1+;f+=2*Y1+1;i+;printf("%d ",i);printf("%d,%dn",X1,Y1);)while(X1!=0&&(X1!=X2|Y1!=Y2);if(X1=0)(void erni();erni();)void ershun()(do(f=X1*X1+Y1*Y1-r;if(f>=0)(X1+;f+=2*X1+1;i+;printf("%d ",i)

13、;printf("%d,%dn",X1,Y1);)else(Y1+;f+=2*Y1+1;i+;printf("%d ",i);printf("%d,%dn",X1,Y1);)while(X1!=0&&(X1!=X2|Y1!=Y2);if(X1=0)(void yishun();yishun();)void erni()(do(f=X1*X1+Y1*Y1-r;if(f>=0)(Y1-;f-=2*Y1+1;i+;printf("%d ",i);printf("%d,%dn",X

14、1,Y1);)else(X1-;f-=2*X1+1;i+;printf("%d ",i);printf("%d,%dn",X1,Y1);)while(Y1!=0&&(X1!=X2|Y1!=Y2);if(Y1=0)(void sanni();sanni();)void sanshun()(do(f=X1*X1+Y1*Y1-r;if(f>=0)(Y1+;f+=2*Y1+1;i+;printf("%d ",i);printf("%d,%dn”,X1,Y1);else(X1-;f-=2*X1+1;i+;prin

15、tf("%d ",i);printf("%d,%dn",X1,Y1);)while(Y1!=0&&(X1!=X2|Y1!=Y2);if(Y1=0)(void ershun();ershun();)void sanni()(do(f=X1*X1+Y1*Y1-r;if(f>=0)(X1+;f+=2*X1+1;i+;printf("%d ",i);printf("%d,%dn",X1,Y1);)else(Y1-;f+=2*Y1+1;i+;printf("%d ",i);print

16、f("%d,%dn",X1,Y1);)while(X1!=0&&(X1!=X2|Y1!=Y2);if(X1=0)(void sini();sini();)void sishun()(do(f=X1*X1+Y1*Y1-r;if(f>=0)(X1-;f-=2*X1+1;i+;printf("%d ",i);printf("%d,%dn",X1,Y1);)else(Y1-;f-=2*Y1+1;i+;printf("%d ",i);printf("%d,%dn",X1,Y1);)w

17、hile(X1!=0&&(X1!=X2|Y1!=Y2);if(X1=0)(void sanshun();sanshun();)void sini()(do(f=X1*X1+Y1*Y1-r;if(f>=0)(Y1+;f+=2*Y1+1;i+;printf("%d ",i);printf("%d,%dn”,X1,Y1);)else(X1+;f+=2*X1+1;i+;printf("%d ",i);printf("%d,%dn",X1,Y1);)while(Y1!=0&&(X1!=X2|Y1!=Y2);if(Y1=0)(void yini();yin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论