앞의 개미 방향을 따라 이동하는 개미의 궤적 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사용자 삽입 이미지

You may also like...

댓글 남기기