基于Matlab的四象限圆弧插补程序.doc
- 文档编号:30859489
- 上传时间:2024-04-18
- 格式:DOC
- 页数:4
- 大小:33.50KB
基于Matlab的四象限圆弧插补程序.doc
《基于Matlab的四象限圆弧插补程序.doc》由会员分享,可在线阅读,更多相关《基于Matlab的四象限圆弧插补程序.doc(4页珍藏版)》请在冰豆网上搜索。
X0=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)*((X0>0)*4+(X0<0)*3))+((X0==0)*((Y0>0)*1+(Y0<0)*2)))+...
(RNSS~=1)*(((Y0==0)*((X0>0)*3+(X0<0)*4))+((X0==0)*((Y0>0)*2+(Y0<0)*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=(XM>0)*((YM>0)*1+(YM<0)*4)+(XM<0)*((YM>0)*2+(YM<0)*3);
%走步计算(RNS百位为1表示逆时针画圆,十位为1表示FM<0,个位数字表示所在象限,ZF代表走步方向)
switchRNS+((FM<0)*10)+(RNSS~=1)*100
case001
ZF=4;
case002
ZF=1;
case003
ZF=3;
case004
ZF=2;
case011
ZF=1;
case012
ZF=3;
case013
ZF=2;
case014
ZF=4;
case101
ZF=2;
case102
ZF=4;
case103
ZF=1;
case104
ZF=3;
case111
ZF=3;
case112
ZF=2;
case113
ZF=4;
case114
ZF=1;
end
%步进电机走步(由ZF控制走步方向由pace控制步长)
switchZF
case1
x1=[XM,XM+pace];
y1=[YM,YM];
case2
x1=[XM,XM-pace];
y1=[YM,YM];
case3
x1=[XM,XM];
y1=[YM,YM+pace];
case4
x1=[XM,XM];
y1=[YM,YM-pace];
end
plot(x1,y1,'r-');%由此点和前一点坐标组成的2个向量画直线
XM=x1
(2);%保存此点坐标供下次作图和比较时使用
YM=y1
(2);
holdon;
pause(0.01);%延时程序形参为每走一步所用时间
end
holdoff;
4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab 象限 圆弧 程序