逐点比较法直线插补MATLAB

Xs = input('请输入起点横坐标XIn X0= ');
Ys = input('请输入起点纵坐标YIn Y0= ');
Xe = input('请输入终点横坐标XIn Xe= ');
Ye = input('请输入终点纵坐标YIn Ye= ');
h= input('输入步长\nh= ');
x=[Xs,Xe];
y=[Ys,Ye];
clc;
hold off;
plot(x,y);
hold on;    
Xlength=Xe-Xs;                
Ylength=Ye-Ys;                    
NXY= (abs(Xlength)+abs(Ylength))/h;
Fm=0;
X(1)=Xs;
Y(1)=Ys;
xlabel('X');
ylabel('Y');
title(['逐点比较法第一象限直线插补']);
if((Xe-Xs)>0&(Ye-Ys)>0) XOY=1; 
end
for(i=1:NXY)            
   switch XOY        
   case 1
       if(Fm>=0)
          X(i+1)=X(i)+h;       
          Y(i+1)=Y(i);   
          Fm=Fm-Ylength; 
       else
          X(i+1)=X(i);          
          Y(i+1)=Y(i)+h; 
          Fm=Fm+Xlength;   
       end
       text((X(i)+X(i+1))/2,(Y(i)+Y(i+1))/2,[num2str(i)]);   
       temp_x=[X(i),X(i+1)];
       temp_y=[Y(i),Y(i+1)];
       plot(temp_x,temp_y,'r-');
   hold on;
   pause(0.5);           
   end
end  
   hold off;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玖釉-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值