相互追踪情况下轨迹图像

问题描述:在某一平坦的陆地上有4支队伍,每个队伍都有能精确追踪敌方队伍的导航系统,导航使得队伍每次前进都是沿直线前进,现在这四支队伍恰好在一个正方形的四个角上,每支队伍都只追踪自己左侧的队伍,请问4支队伍最终的追踪轨迹如何?

解决思路:由题可知每支队伍都是沿着直线前进,但由于4支队伍都在移动,所以最后轨迹应该是4条曲线。将这4个点的坐标表示出来,利用微分的思想,计算t时间内(t极小)每支队伍的位移,然后利用三角函数以及微积分的知识计算出一段位移过后每个点的坐标,循环n次,当4支队伍的间距小于某个值视为追上,然后依次描点画线。

代码展示:(使用Matlab)

clear;clc;
v=20;t=0.06;
n=200;
a=rand(n,2,4);
a(1,1,1)=100;
a(1,2,1)=0;
a(1,1,2)=0;
a(1,2,2)=0;
a(1,1,3)=0;
a(1,2,3)=100;
a(1,1,4)=100;
a(1,2,4)=100;
for i=1:100
    for j=1:3
    d1=sqrt((a(i,1,j+1)-a(i,1,j))^2+(a(i,2,j)-a(i,2,j+1))^2);
    cos_1=(a(i,1,j+1)-a(i,1,j))/d1;
    sin_1=(a(i,2,j+1)-a(i,2,j))/d1;
    a(i+1,1,j)=a(i,1,j)+v*t*cos_1;
    a(i+1,2,j)=a(i,2,j)+v*t*sin_1;
    end
    d2=sqrt((a(i,1,4)-a(i,1,1))^2+(a(i,2,4)-a(i,2,1))^2);
    cos_1=(a(i,1,1)-a(i,1,4))/d1;
    sin_1=(a(i,2,1)-a(i,2,4))/d1;
    a(i+1,1,4)=a(i,1,4)+v*t*cos_1;
    a(i+1,2,4)=a(i,2,4)+v*t*sin_1;
plot(a(i,1,1),a(i,2,1),'r*',a(i,1,2),a(i,2,2),'g*',a(i,1,3),a(i,2,3),'b*',a(i,1,4),a(i,2,4),'r*')
    hold on
    pause(0.01)
    if d1<1.5
        break
    end
end

曲线图例:

  • 24
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值