• 大小: 12KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签:

资源简介

动物集群行为运动轨迹仿真,逃离捕食者的运动路径仿真

资源截图

代码片段和文件信息

%实现功能:模拟鱼群的集群,避敌,觅食行为,进行动画演示
clear;clc;
N=50;               %鱼的数量50
Rn=1500;            %领域半径
VV=30;              %初始速度3.0
%a=3;               %加速度0.3
Vsi=18;             %反弹速度0.8
%鱼的活动范围
XRange=[-1000010000];   
YRange=[-1000010000];
VRan=[-5*pi/65*pi/6];
%(1)随机产生鱼的位置PF(xy)为位置集 
for i=1:N
    PZ(i1)=XRange(1)+(XRange(2)-XRange(1))*rand; %X坐标
    PZ(i2)=YRange(1)+(YRange(2)-YRange(1))*rand; %Y坐标
    PF(i1)=PZ(i1);
    PF(i2)=PZ(i2);
    VZ(i1)=2*pi*rand;                            %alpha X速度方向
    VZ(i2)=2*pi*rand;                            %beta Y速度方向   
    VF(i1)=VZ(i1);
    VF(i2)=VZ(i2);
end
lam=[0.1 0.3 0.3 0.3];
%(2)判断一条鱼和其他鱼之间的距离
%如果Rmin,Rmax%(2)搜索视野范围内的鱼,并统计个数
while 1
for i=1:N
    cn=0;
    alsum=0;
    besum=0;
    for j=1:N
        if(i~=j)&&sqrt((PZ(i1)-PZ(j1))^2+(PZ(i2)-PZ(j2))^2)<=Rn
               cn=cn+1;
               alsum=alsum+VZ(i1);
               besum=besum+VZ(i2);           
        end 
    end
    if cn~=0
    alsum=alsum/cn;
    besum=besum/cn;
    VF(i1)=alsum;
    VF(i2)=besum;
    end
    PF(i1)=PZ(i1)+VF(i4)*cos(VF(i1));
    PF(i2)=PZ(i2)+VF(i4)*cos(VF(i2));
    %是否越界
    if PF(i1)XRange(2) 
      VF(i1)=VF(i1)+pi;
    end
    if PF(i2)YRange(2)
        VF(i2)=VF(i2)+pi;
    end
    
    PF(i1)=PZ(i1)+VF(i4)*cos(VF(i1));
    PF(i2)=PZ(i2)+VF(i4)*cos(VF(i2));
end
TU1=plot3(PZ(:1)PZ(:2)‘.‘);
%更新鱼的状态
for i=1:N
%实现功能:模拟鱼群的集群,避敌,觅食行为,进行动画演示
clear;clc;
N=50;               %鱼的数量50
Rn=1500;            %领域半径
VV=30;              %初始速度3.0
%a=3;               %加速度0.3
Vsi=18;             %反弹速度0.8
%鱼的活动范围
XRange=[-1000010000];   
YRange=[-1000010000];
VRan=[-5*pi/65*pi/6];
%(1)随机产生鱼的位置PF(xy)为位置集 
for i=1:N
    PZ(i1)=XRange(1)+(XRange(2)-XRange(1))*rand; %X坐标
    PZ(i2)=YRange(1)+(YRange(2)-YRange(1))*rand; %Y坐标
    PF(i1)=PZ(i1);
    PF(i2)=PZ(i2);
    VZ(i1)=2*pi*rand;                            %alpha X速度方向
    VZ(i2)=2*pi*rand;                            %beta Y速度方向
    VF(i1)=VZ(i1);
    VF(i2)=VZ(i2);
    VF(i3)=VZ(i3);
    VF(i4)=VZ(i4);
end
lam=[0.1 0.3 0.3 0.3];
%(2)判断一条鱼和其他鱼之间的距离
%如果Rmin,Rmax%(2)搜索视野范围内的鱼,并统计个数
while 1
for i=1:N
    cn=0;
    alsum=0;
    besum=0;
    for j=1:N
        if(i~=j)&&sqrt((PZ(i1)-PZ(j1))^2+(PZ(i2)-PZ(j2))^2)<=Rn
               cn=cn+1;
               alsum=alsum+VZ(i1);
               besum=besum+VZ(i2);
        end 
    end
    if cn~=0
    alsum=alsum/cn;
    besum=besum/cn;
    VF(i1)=alsum;
    VF(i2)=besum;
    end
    PF(i1)=PZ(i1)+VF(i4)*cos(VF(i1));
    PF(i2)=PZ(i2)+VF(i4)*cos(VF(i2));
    %是否越界
    if PF(i1)XRange(2) 
      VF(i1)=VF(i1)+pi;
    end
    if PF(i2)YRange(2)
        VF(i2)=VF(i2)+pi;
    end

   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3801  2018-04-16 11:07  鱼群集群和被捕食代码\test16.m

     文件       4066  2018-04-16 02:19  鱼群集群和被捕食代码\test16_1.m

     文件       5709  2018-04-16 14:03  鱼群集群和被捕食代码\test18.m

     文件       5811  2018-04-16 11:52  鱼群集群和被捕食代码\test18_1.m

     文件       5813  2018-04-16 11:53  鱼群集群和被捕食代码\test18_2.m

     文件       6545  2018-04-16 11:54  鱼群集群和被捕食代码\test18_3.m

     文件        333  2018-04-16 16:09  鱼群集群和被捕食代码\test4_1.m

     文件        326  2018-04-16 15:56  鱼群集群和被捕食代码\test4_3.m

     文件        996  2018-04-16 15:54  鱼群集群和被捕食代码\test9_1.m

     文件       1254  2018-04-16 01:51  鱼群集群和被捕食代码\test9_2.m

     目录          0  2018-04-20 10:34  鱼群集群和被捕食代码

----------- ---------  ---------- -----  ----

                34654                    11


评论

共有 条评论

相关资源