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;
逐点比较法直线插补MATLAB
于 2022-09-29 17:54:26 首次发布