C語言模擬直線插補(bǔ)與圓弧插補(bǔ)程序設(shè)計(jì)_第1頁
C語言模擬直線插補(bǔ)與圓弧插補(bǔ)程序設(shè)計(jì)_第2頁
C語言模擬直線插補(bǔ)與圓弧插補(bǔ)程序設(shè)計(jì)_第3頁
C語言模擬直線插補(bǔ)與圓弧插補(bǔ)程序設(shè)計(jì)_第4頁
C語言模擬直線插補(bǔ)與圓弧插補(bǔ)程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

數(shù)控技術(shù)課程設(shè)計(jì)闡明書設(shè)計(jì)題目直線插補(bǔ)與圓弧插補(bǔ)程序設(shè)計(jì)機(jī)械設(shè)計(jì)以及自動(dòng)化專業(yè)機(jī)械工程學(xué)院機(jī)械102班設(shè)計(jì)者青島理工大學(xué)6月20日目錄設(shè)計(jì)題目………12.目錄……………23.直線插補(bǔ)流程圖………………34.直線插補(bǔ)程序…………………45.程序成果………86.圓弧插補(bǔ)流程圖………………97.圓弧插補(bǔ)程序…………………108.程序成果………21一.直線插補(bǔ)1.直線插補(bǔ)程序流程圖置FM=0置FM=0輸入XE、YE、XOY、NXYFM≥0?XOR=1或4?XOR=1或2?ZF=1ZF=2ZF=3ZF=4FM=FM-YEFM=FM+YE調(diào)用走步控制程序NXY=NXY-1NXY=0?開始結(jié)束YNYNYNYN2.直線插補(bǔ)程序設(shè)計(jì)#include"stdio.h"inti,X,Y,X0,Y0,Xe,Ye,F,N;inta[30][2];voidmain(){intm;intmenu(); voidyi();voider();voidsan();voidsi();voidte();voidshuchu();m=menu();a[0][0]=X0;a[0][1]=Y0;switch(m){case1:yi();shuchu();break;case2:er();shuchu();break;case3:san();shuchu();break;case4:si();shuchu();break;case5:te();shuchu();break;default:printf("無法插補(bǔ)\n");}}intmenu(){ intt;printf("輸入起點(diǎn)坐標(biāo)\n");scanf("%d,%d",&X0,&Y0); printf("輸入終點(diǎn)坐標(biāo)\n");scanf("%d,%d",&Xe,&Ye); if(Xe>=X0&&Ye>=Y0)t=1;elseif(Xe<=X0&&Ye>=Y0)t=2;elseif(Xe<=X0&&Ye<=Y0) t=3;elseif(Xe>=X0&&Ye<=Y0) t=4;elseif(Xe==X0&&((Ye>Y0&&Y0>=0)||(Ye<Y0&&Y<=0))) t=5;elset=6;return(t);}voidyi(){F=0; N=Xe-X0+Ye-Y0;X=X0;Y=Y0;for(i=1;i<=N;i++){if(F>=0){X++;a[i][0]=X;a[i][1]=Y;F-=Ye-Y0;}else{Y++;a[i][0]=X;a[i][1]=Y;F+=Xe-X0;}}}voider(){F=0; N=X0-Xe+Ye-Y0;X=X0;Y=Y0;for(i=1;i<=N;i++){if(F>=0){X--;a[i][0]=X;a[i][1]=Y;F-=Ye-Y0;}else{Y++;a[i][0]=X;a[i][1]=Y;F+=X0-Xe;}}}voidsan(){F=0; N=X0-Xe+Y0-Ye;X=X0;Y=Y0;for(i=1;i<=N;i++){if(F>=0){X--;a[i][0]=X;a[i][1]=Y;F-=Y0-Ye;}else{Y--;a[i][0]=X;a[i][1]=Y;F+=X0-Xe;}}}voidsi(){F=0; N=Xe-X0+Y0-Ye;X=X0;Y=Y0;for(i=1;i<=N;i++){if(F>=0){X++;a[i][0]=X;a[i][1]=Y;F-=Y0-Ye;}else{Y--;a[i][0]=X;a[i][1]=Y;F+=Xe-X0;}}}voidte(){ N=Ye-Y0;for(i=1;i<=N;i++){ if(Ye>0) {Y++; a[i][0]=X;a[i][1]=Y;} elseif(Ye<0) {Y--; a[i][0]=X;a[i][1]=Y;} }}voidshuchu(){ for(i=0;i<=N;i++) { printf("%d ",i);printf("%d,%d\n",a[i][0],a[i][1]);}}3.程序成果例如起點(diǎn)(0,0)終點(diǎn)(6,4)步數(shù)坐標(biāo)1,01,12,12,23,24,24,35,36,36,4二.圓弧插補(bǔ)1.圓弧插補(bǔ)程序流程圖ZF=4ZF=4RNS=1,6?RNS=2,5?輸入X0、Y0、NXY、RNS置FM=0、XM=X0、YM=Y0RNS=1,2,6,8?ZF=4ZF=4RNS=1,6?RNS=2,5?輸入X0、Y0、NXY、RNS置FM=0、XM=X0、YM=Y0RNS=1,2,6,8?FM≥0?FM≥0?RNS=2,7?RNS=1,8?ZF=3ZF=2ZF=1ZF=1ZF=2ZF=3FM=FM-2XM=1FM=FM+2XM=1FM=FM-2YM=1FM=FM+2YM+1YM=YM+1YM=XM-1YM=XM+1YM=YM-1調(diào)用走步控制程序NXY=NXY-1NXY=0?結(jié)束N NYNYYNNYNYNYNYNNNN2.圓弧插補(bǔ)程序#include"stdio.h"#include"math.h"intX0,Y0,X1,Y1,X2,Y2,X3,Y3,X4,Y4;inti=1,r,f,s;voidmain(){intm;intmenu(); voidyishun();voidyini();voidershun();voiderni();voidsanshun();voidsanni();voidsishun();voidsini();voidshuchu();m=menu();switch(m){case1:yishun();break;case2:yini();break;case3:ershun();break;case4:yini();break;case5:sanshun();break;case6:yini();break;case7:sishun();break;case8:yini();break;default:printf("無法插補(bǔ)\n");}}intmenu(){intt;printf("輸入原點(diǎn)坐標(biāo)\n");scanf("%d,%d",&X0,&Y0); printf("輸入起點(diǎn)坐標(biāo)\n");scanf("%d,%d",&X3,&Y3);printf("輸入終點(diǎn)坐標(biāo)\n");scanf("%d,%d",&X4,&Y4);printf("1:順時(shí)針圓弧\n");printf("2:逆時(shí)針圓弧\n");scanf("%d",&s);X1=X3-X0;Y1=Y3-Y0;X2=X4-X0;Y2=Y4-Y0;r=X1*X1+Y1*Y1; if(X1>=0&&Y1>0&&s==1)t=1;elseif(X1>0&&Y1>=0&&s==2)t=2;elseif(X1<0&&Y1>=0&&s==1)t=3;elseif(X1<=0&&Y1<0&&s==2)t=4;elseif(X1<=0&&Y1<0&&s==1) t=5;elseif(X1<0&&Y1<=0&&s==2) t=6; elseif(X1>0&&Y1<=0&&s==1) t=7;elseif(X1>=0&&Y1<0&&s==2) t=8;elset=9;return(t);}voidyishun(){do{ f=X1*X1+Y1*Y1-r; if(f>=0){ Y1--;f-=2*Y1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}else{X1++;f+=2*X1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}}while(Y1!=0&&(X1!=X2||Y1!=Y2));if(Y1==0){voidsishun();sishun();}}voidyini(){do{ f=X1*X1+Y1*Y1-r; if(f>=0){ X1--;f-=2*X1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}else{Y1++;f+=2*Y1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}}while(X1!=0&&(X1!=X2||Y1!=Y2));if(X1==0){ voiderni();erni();}}voidershun(){do{f=X1*X1+Y1*Y1-r;if(f>=0){ X1++;f+=2*X1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}else{Y1++;f+=2*Y1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}}while(X1!=0&&(X1!=X2||Y1!=Y2));if(X1==0){ voidyishun();yishun();}}voiderni(){do{ f=X1*X1+Y1*Y1-r;if(f>=0){ Y1--;f-=2*Y1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}else{X1--;f-=2*X1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}}while(Y1!=0&&(X1!=X2||Y1!=Y2));if(Y1==0){voidsanni();sanni();}}voidsanshun(){do{ f=X1*X1+Y1*Y1-r;if(f>=0){ Y1++;f+=2*Y1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}else{X1--;f-=2*X1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}}while(Y1!=0&&(X1!=X2||Y1!=Y2));if(Y1==0){voidershun();ershun();}}voidsanni(){do {f=X1*X1+Y1*Y1-r;if(f>=0){ X1++;f+=2*X1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}else{Y1--;f+=2*Y1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}}while(X1!=0&&(X1!=X2||Y1!=Y2));if(X1==0){voidsini();sini();}}voidsishun(){do{f=X1*X1+Y1*Y1-r;if(f>=0){ X1--;f-=2*X1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}else{Y1--;f-=2*Y1+1;i++;printf("%d ",i);printf("%d,%d\n",X1,Y1);}}while(X1!=0&&(X1!=X2||Y1!=Y2));if(X1==0){voidsanshun();sanshun();}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論