앞의 개미 방향을 따라 이동하는 개미의 궤적
% 앞의 개미의 방향을 따라 일정한 속력으로 이동하는 개미의 궤적
X=[0 0 1 1]; % X 좌표
Y=[0 1 1 0]; % Y 좌표
r=[X;Y];
v=0.0005; % 개미의 이동 속도
track=r; % 초기 위치 좌표
tmax=10000; % 최종 시간
color=char(‘or’,’hb’,’+’,’d’); % 4마리 개미 표시 설정
for t=2:tmax
direction=r(:,[2 3 4 1])-r(:,[1 2 3 4]); % 앞의 개미에서 자신의 위치를 계산한 방향
udir=direction/norm(direction(:,1)); % 방향 단위 벡터
r=r+v*udir; % 속도에 방향을 곱하여 위치 계산
if norm(r(:,1)-[0.5;0.5]) < 0.01 % 개미가 중앙에 오면 break 명령
break;
end
track(:,:,t)=r; % 개미 4마리의 위치를 track에 저장
end
t=1; % 값 초기화
x=[];y=[];
for m=1:4 % 각 개미의 x,y 좌표를 track으로 부터 계산
x(:,m)=squeeze(track(1,m,:));
y(:,m)=squeeze(track(2,m,:));
end
clf % 기존 이미지를 지우고 재설정
cla reset;
hold on % 이미지 유지 on
plot(x,y) % 개미의 궤적을 그림
for m=1:4 % 개미 4마리를 초기 위치에 표시
p(m)=plot(x(1,m),y(1,m),color(m),’EraseMode’,’xor’);
end
for t=1:length(x(:,1)) % 시간의 변화에 따라 set을 이용하여 개미 위치 변화
for m=1:4
set(p(m),’XData’,x(t,m),’YData’,y(t,m))
end
drawnow
end
axis([0 1 0 1]) % x, y 축 설정
hold off
