matlab程序 直线插补,无聊写matlab仿真直线插补算法

本帖最后由 CK345 于 2016-6-24 17:16 编辑

X0 = input('请输入起点横坐标 X\n X0 = ');

Y0 = input('请输入起点纵坐标 Y\n Y0 = ');

Xe = input('请输入终点横坐标 X\n Xe = ');

Ye = input('请输入终点纵坐标 Y\n Ye = ');

h = input('输入步长\n h = ');

x=[X0,Xe];

y=[Y0,Ye];

plot(x,y);

hold on;

Xe=Xe-X0;

Ye=Ye-Y0;

NXY= (abs(Xe)+abs(Ye))/h;

step=0;

Fm=0;

Xm=X0;

Ym=Y0;

if(Xe>0&Ye>=0)  XOY=1;

end

if(Xe<=0&Ye>0)  XOY=2;

end

if(Xe<0&Ye<=0)  XOY=3;

end

if(Xe>=0&Ye<0)  XOY=4;

end

while (step

switch XOY

case 1

if(Fm>=0)

x1=[Xm,Xm+h];

y1=[Ym,Ym];

else

x1=[Xm,Xm];

y1=[Ym,Ym+h];

end

case 2

if(Fm<0)

x1=[Xm,Xm-h];

y1=[Ym,Ym];

else

x1=[Xm,Xm];

y1=[Ym,Ym+h];

end

case 3

if(Fm>=0)

x1=[Xm,Xm-h];

y1=[Ym,Ym];

else

x1=[Xm,Xm];

y1=[Ym,Ym-h];

end

case 4

if(Fm<0)

x1=[Xm,Xm+h];

y1=[Ym,Ym];

else

x1=[Xm,Xm];

y1=[Ym,Ym-h];

end

end

step=step+1;

plot(x1,y1,'r-');                 %由此点和前一点坐标组成的2个向量画直线

Xm=x1(2);                    %保存此点坐标供下次作图和比较时使用

Ym=y1(2);

Fm=(Ym-Y0)*Xe-(Xm-X0)*Ye;

hold on;

text((x1(1)+x1(2))/2,(y1(1)+y1(2))/2,[num2str(step)])

pause(0.5);                    %延时程序形参为每走一步所用时间

end

xlabel('X')

ylabel('Y')

title(['四象限直线插补'])

hold off;

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值