people_and_dog.m

来自「一个慢跑者在平面上沿着他喜欢的路径跑步」· M 代码 · 共 35 行

M
35
字号
%运动轨迹仿真程序
clc;clf
f=inline('2*sin(2*t).*cos(3*t)') %人跑步路径,自定义
t=0:.001:pi*6; 
plot(t,f(t));
xlim([0,6*pi])
% axis equal;
hold on;
set(gcf,'DoubleBuffer','on');
xr=1;
yr=0; % initial position of the man
hr=plot(1,0,'k.','markersize',24);
xg=0.1;
yg=0; % initial position of the dog
hg=plot(xg,yg,'rx','markersize',7);
dT=0.1;
dg=0.2; % dg is speed of dog
T=2;
zg=xg+i*yg;
ht=plot(zg,'r');
zz=zg;
while T<6*pi;
  T=T+dT;
  xr=T;
  yr=f(T);
  set(hr,'xdata',xr,'ydata',yr);
  D=xr+yr*i-zg;
  D=D/abs(D);
  zg=zg+D*dg;
  zz=[zz,zg];
  set(hg,'xdata',real(zg),'ydata',imag(zg));
  set(ht,'xdata',real(zz),'ydata',imag(zz));
  pause(0.1);
end 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?