2013-05-07 4 views
0

내 현재 코드 :Matlab에서이 3D 플롯을 애니메이트하는 방법은 무엇입니까?

a=7 
f=10 
T=1/f; 
v=40 
wl=v/f; 
x1=1; 
x2=30 
step=0.01 

t=x1:step:x2; 
x=x1:step:x2; 
y=a*sind(2*pi*f*(t+(x*T)/wl)); 
h=plot3(x,y,t); 
set(h,'EraseMode','xor','MarkerSize',20) 
xlabel('displacement(m)'); 
ylabel('amplitude(m)'); 
title('Wave Animation'); 
for t=x1:step:x2 
drawnow 
y=a*sind(2*pi*f*(t+(x*T)/wl)); 
set(h,'YData',y) 
pause(0.01) 
end 

나는 3D 메쉬 음모로 변환하지만 애니메이션과 matlab에 충돌에 렌더링하는 연령이 걸립니다.

a=7 
f=10 
T=1/f; 
v=40 
wl=v/f; 
x1=1; 
x2=30 
step=0.01 

t=x1:step:x2; 
x=x1:step:x2; 
[x,t] = meshgrid(x,t); 
y  = a*sind(2*pi*f*(t+(x*T)/wl)); 
mesh(y) 

내가 3D로 만들 때와 비슷한 모양으로 보이게하려면 애니메이션을 적용하는 가장 좋은 방법은 무엇입니까?

+0

루프 내부에서 y를 계산하고 j에 의존하게하거나 아무것도 변경하지 않아야합니다. – shoelzer

+0

@shoelzer 감사합니다. 감사합니다. 그러나 F에 정보를 저장하는 동안 천천히 렌더링됩니다. Movie (F)가 사용되기 전에 어떻게 정보가 표시되지 않도록 할 수 있습니까? – NLed

답변

0

실시간으로 애니메이션을 만들 수 없다면 getframemovie을 사용하는 것이 좋습니다. getframe을 사용하여 생성 할 수있는 속도로 프레임을 캡처 한 다음 movie을 사용하여 더 빠른 프레임 속도로 프레임을 재생합니다. 간단한 예제는 getframe 링크를 참조하십시오.

+0

나는 고마워, 고마워. 그러나 F에 정보를 저장하는 동안 천천히 렌더링됩니다. Movie (F)가 사용되기 전에 어떻게 정보가 표시되지 않도록 할 수 있습니까? – NLed

+0

@NLed 나는 당신이 그것을 막을 수 있다고 생각하지 않습니다. 캡처하려면 프레임을 그려야합니다. – shoelzer

관련 문제