n=500; %总时刻数 x=zeros(4,n); %产生4行n列个零来放置坐标矩阵 y=zeros(4,n); dt=0.02; %时间间隔 v=10; %速度 %四个人初始位置的横,纵坐标: x(1,1)=100; y(1,1)=0; x(2,1)=0; y(2,1)=0; x(3,1)=0; y(3,1)=100; x(4,1)=100; y(4,1)=100; for j=1:n-1 for i=1:3 %前三个人的位置更新: d=sqrt((x(i+1,j)-x(i,j))^2+(y(i+1,j)-y(i,j))^2); %第i个人和第i+1个人之间j时刻的距离 dircos=(x(i+1,j)-x(i,j))/d; %第i个人j时刻运动方向的cos和sin值 dirsin=(y(i+1,j)-y(i,j))/d; x(i,j+1)=x(i,j)+v*dt*dircos; %第i个人j+1时刻的位置的横,纵坐标 y(i,j+1)=y(i,j)+v*dt*dirsin; end %第四个人的位置更新: d=sqrt((x(1,j)-x(4,j))^2+(y(1,j)-y(4,j))^2); %第4个人和第1个人之间j时刻的距离 dircos=(x(1,j)-x(4,j))/d; %第4个人j时刻运动方向的cos和sin值 dirsin=(y(1,j)-y(4,j))/d; x(4,j+1)=x(4,j)+v*dt*dircos; %第4个人j+1时刻的位置的横,纵坐标 y(4,j+1)=y(4,j)+v*dt*dirsin; %给第j时刻四个人的位置作图: plot(x(1,j),y(1,j),'r*',x(2,j),y(2,j),'y*',x(3,j),y(3,j),'b*',x(4,j),y(4,j),'g*') hold on pause(0.001) %暂停0.001秒 end
最新发布