基于Matlab的四象限圆弧插补程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1X0=input('请输入起点横轴坐标x:');Y0=input('请输入起点纵轴坐标y:');NXY=input('请输入差补步数:');pace=input('请输入差补步长:');RNSS=input('请选择差补走向(1代表顺时针/2代表逆时针):');XM=X0;YM=Y0;%画基准圆R=sqrt(X0*X0+Y0*Y0);alpha=0:pi/20:2*pi;xx=R*cos(alpha);yy=R*sin(alpha);plot(xx,yy,'g:');holdon;axisequal;%针对跨象限运行时对ZF初始化(由于在跨象限运行时不改变ZF值所以必须对其初始化)ZF=(RNSS==1)*(((Y0==0)*((X00)*4+(X00)*3))+((X0==0)*((Y00)*1+(Y00)*2)))+...(RNSS~=1)*(((Y0==0)*((X00)*3+(X00)*4))+((X0==0)*((Y00)*2+(Y00)*1)));%建立NXY次循环来实现差补计算与绘图fornum=1:NXY%FM值判断FM=XM*XM+YM*YM-X0*X0-Y0*Y0;%象限判断(RNS为1,2,3,4分别代表1,2,3,4象限)RNS=(XM0)*((YM0)*1+(YM0)*4)+(XM0)*((YM0)*2+(YM0)*3);%走步计算(RNS百位为1表示逆时针画圆,十位为1表示FM0,个位数字表示所在2象限,ZF代表走步方向)switchRNS+((FM0)*10)+(RNSS~=1)*100case001ZF=4;case002ZF=1;case003ZF=3;case004ZF=2;case011ZF=1;case012ZF=3;case013ZF=2;case014ZF=4;case101ZF=2;case102ZF=4;case103ZF=1;case104ZF=3;case111ZF=3;case1123ZF=2;case113ZF=4;case114ZF=1;end%步进电机走步(由ZF控制走步方向由pace控制步长)switchZFcase1x1=[XM,XM+pace];y1=[YM,YM];case2x1=[XM,XM-pace];y1=[YM,YM];case3x1=[XM,XM];y1=[YM,YM+pace];case4x1=[XM,XM];y1=[YM,YM-pace];endplot(x1,y1,'r-');%由此点和前一点坐标组成的2个向量画直线XM=x1(2);%保存此点坐标供下次作图和比较时使用YM=y1(2);holdon;pause(0.01);%延时程序形参为每走一步所用时间endholdoff;4

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功