count=0;
px=[0 7*pi 7*pi 0];
py=[0 0 -2 -2];
for t=0 : 0.1 :6*pi
i=0 : 0.01: 2*pi;
r=1;
ox=r*cos(i);
oy=r*sin(i)+1;
movx=ox+t;
movy=oy;
lx=r*(t-sin(t));
ly=r*(1-cos(t));
tmpx(count+1)=lx;
tmpy(count+1)=ly;
clf;
fill(px, py,'r');
for j= 1: count+1
line(tmpx(j),tmpy(j))
end
line(lx,ly)
line([t,lx],[1,ly],'Color','r','Marker','o')
line(movx,movy)
axis([0 7*pi 0 1.5])
axis equal
pause(0.00000000001)
count=count+1;
end
원과 그 위의 점의 궤적을 그리는 그래프입니다.
궤적은 밑의 식을 썼습니다.
r*(t-sin(t));
r*(1-cos(t));
이 소스에서 주의할점은
clf나 cla를쓰면 공은 이동하는모습이 보이지만 점의 궤적도 함께 없어져버린다는 점입니다.
그래서
for문의 한 주기마다 이전까지의 궤적을 저장시켜서 함께 찍어줬습니다.
예를들어
1을찍고
clf
1 2
clf
1 2 3
clf
1 2 3 ...
이런식으로 매 for문마다 처음~바로 직전의 궤적까지를 불러와서 line을 쓰는식으로 했습니다.
lx=r*(t-sin(t));
ly=r*(1-cos(t));
tmpx(count+1)=lx;
tmpy(count+1)=ly;
clf;
fill(px, py,'r');
for j= 1: count+1
line(tmpx(j),tmpy(j))
end
'소프트웨어 > MATLAB' 카테고리의 다른 글
MATLAB 웹캠영상 흑백화하기 (0) | 2012.05.27 |
---|---|
MATLAB에서 이미지를 흑백으로 만들기 (0) | 2012.05.27 |
MATLAB에서 웹캠 불러오기 (3) | 2012.05.27 |
matlab 에서 녹화/그래프 촬영 하기 (0) | 2012.04.12 |
matlab, rand함수를 이용한 두점 만나게하기 (0) | 2012.04.12 |
매트랩을 이용한 가우스소거법 (5) | 2012.04.08 |
[MATLAB] rolling pitching을이용한 전투기 이륙 (0) | 2012.04.02 |