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 
사용자 삽입 이미지
크리에이티브 커먼즈 라이센스
Creative Commons License

"Matlab" 카테고리의 다른 글

Posted by downright

2008/07/01 23:07 2008/07/01 23:07

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

Leave a comment
[로그인][오픈아이디란?]
« Previous : 1 : ... 59 : 60 : 61 : 62 : 63 : 64 : 65 : 66 : 67 : ... 387 : Next »