앞의 개미 방향을 따라 이동하는 개미의 궤적 3D
[code matlab]
clear;clf;cla reset; % 초기화
X=[0 1 1 0]; % 개미 각각의 초기 X 좌표
Y=[0 0 1 1]; % Y 좌표
Z=[0 1 0 1]; % Z 좌표
r=[X;Y;Z]; % 개미들의 위치
v=0.01; % 속도
track=r; % 개미의 위치 변화
tmax=400; % 최대 시간
color=char(‘or’,’hb’,’+’,’d’); % 표시 형식
hold on
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.5]) < 0.01 % 중앙 위치에 가까워지면 종료.
break;
end
track(:,:,t)=r; % 좌표를 track에 저장
end
for m=1:4 %SQUEEZE Remove singleton dimensions
x(:,m)=squeeze(track(1,m,:));y(:,m)=squeeze(track(2,m,:));z(:,m)=squeeze(track(3,m,:));
end
plot3(x,y,z) % 입체로 그래프 그림
for m=1:4 % 개미를 좌표에 표시
p(m)=plot3(x(1,m),y(1,m),z(1,m),color(m));
end
view(3) % 입체로 보기
grid on; % 눈금선 표시
for t=1:length(x(:,1)) % 개미의 이동을 애니메이션 처럼 표시
for m=1:4
set(p(m),’XData’,x(t,m),’YData’,y(t,m),’ZData’,z(t,m))
end
drawnow
end
hold off
[/code]
1566255985.m