求救编程高手,用matlab仿真直线插补的程序

2025-02-25 12:15:09
推荐回答(1个)
回答1:

%逐点比较法直线插补
%==========================================================================
F=0; %偏差函数

xs=0; %X起始坐标
ys=0; %Y起始坐标
xe=5; %X终点坐标
ye=6; %Y终点坐标

xo=xs; %插补前X坐标
yo=ys; %插补前Y坐标
xn=xs; %插补后X坐标
yn=ys; %插补后Y坐标

dx=1; %X脉冲当量
dy=1; %Y脉冲当量

TT=1; %插补周期
%==========================================================================
n=abs(xe-xs)+abs(ye-ys); %插补次数

plot([xs xe*dx],[ys ye*dy],'r-');hold on;grid on;
%==========================================================================
while(n>0)
if(F>=0)
xn=xo+dx;
yn=yo;
plot([xo xn],[yo yn],'b-');hold on;grid on;

xo=xn;yo=yn;

F=F-ye;
else
yn=yo+dy;
xn=xo;
plot([xo xn],[yo yn],'b-');hold on;grid on;

xo=xn;yo=yn;

F=F+xe;
end

pause(TT);

n=n-1;
end