Home > src > BN_pol_rec > Hsand > getPlatoonDirection.m

getPlatoonDirection

PURPOSE ^

calculates medium direction of enemy platoon

SYNOPSIS ^

function [DP] = getPlatoonDirection(own_force_pos, enemy_pos, enemy_vec)

DESCRIPTION ^

 calculates medium direction of enemy platoon
 own_force_pos = medium positioon of our force
 enemy_pos = medium position of enemy platoon
 enemy_vec = merdium direction of enemy platoon
 returns proability vector DP = [torwards, neural, bak]

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 
0002  function [DP] = getPlatoonDirection(own_force_pos, enemy_pos, enemy_vec)
0003  
0004  % calculates medium direction of enemy platoon
0005  % own_force_pos = medium positioon of our force
0006  % enemy_pos = medium position of enemy platoon
0007  % enemy_vec = merdium direction of enemy platoon
0008  % returns proability vector DP = [torwards, neural, bak]
0009 
0010 
0011  vi_fiVec = [own_force_pos(1)- enemy_pos(1) own_force_pos(2)- enemy_pos(2)]; 
0012  % angle is in degrees
0013  [angle, angle_half] = findAngle(vi_fiVec, enemy_vec);
0014  p_attack = 0; p_neutral = 0; p_bak = 0;
0015  
0016  if  (((angle >= 0)&&(angle <= 30))||(angle > 330))
0017      p_attack = 1;
0018  end
0019  
0020  if  (((angle > 30)&&(angle <= 60))||((angle >300)&&(angle <= 330)))
0021      k = -1/30;
0022      if (angle > 300)
0023         p_attack = - k*(angle- 300);
0024     else
0025         p_attack = 1 + k*(angle- 30);
0026     end
0027      p_neutral = 1 - p_attack;
0028  end
0029  
0030  if  (((angle > 60)&&(angle  <= 120))||((angle >240)&&(angle <= 300)))
0031         p_neutral = 1;
0032  end
0033  
0034  if  (((angle > 120)&&(angle <= 150))||((angle >210)&&(angle <= 240)))
0035      k = -1/30;
0036      if (angle >210)
0037         p_neutral= - k*(angle - 210);
0038      else
0039          p_neutral= 1 + k*(angle - 120);
0040      end
0041      p_bak = 1- p_neutral;
0042  end
0043  
0044  if  (angle > 150)&&(angle <= 210)
0045      p_bak = 1;
0046  end
0047  
0048  DP = [p_attack p_neutral p_bak];
0049  
0050

Generated on Wed 16-Mar-2005 09:17:47 by m2html © 2003