2016-06-15 4 views
0

내가 알고있는 경로를 추적하는 차량을 시뮬레이션하고 싶습니다. 경로에서 움직이는 애니메이션 모양입니다. matlab에서 코드를 작성했습니다. 차량) 경로를 따라 움직이지만 마지막 사각형 (추억)을 제거하고 싶을 때마다 올바른 방향으로 매번 사각형을 하나씩 넣기를 원합니다. 누구든지 그 목표를 달성하기 위해 내가 할 수있는 조언을 부탁드립니다. 내 코드는 내가 이전에 설명한 것을 보여알려진 경로를 통해 움직이는 애니메이션 모양

r=0.25; 
t=0:0.1:10; 
A=100; 
yo=A*sin(t);%%desired output position on Y axe 
Voy=diff(yo); 
Vox=ones(1,101); 
Voy(length(Voy)+1)=Voy(length(Voy)) 
Vmx=sqrt(Voy.*Voy+Vox.*Vox); 
theta=atan(Voy./Vox); 
%%Speed's equations 
Voy=Vmx.*sin(theta); 
Vox=Vmx.*cos(theta); 
x=0; 
y=0; 
t=0; 
for i=1:1:length(Voy); 
x=Vox(i)*(t); 
y=Voy(i)*0.1; 
pause(0.05) 
t=t+0.1; 
plot(x,y,'--gs',... 
'LineWidth',2,... 
'MarkerSize',30,... 
'MarkerEdgeColor','b',... 
'MarkerFaceColor',[0.5,0.5,0.5]) 
hold on 
end 
+0

더 구체적인 질문을하십시오. 그것은 MATLAB에서 시각화에 관한 것입니까? –

답변

1

다음 코드는 당신이 찾고있는 무엇을합니까 생각한다, 플롯의 핸들을 사용

r=0.25; 
t=0:0.1:10; 
A=100; 
yo=A*sin(t);%%desired output position on Y axe 
Voy=diff(yo); 
Vox=ones(1,101); 
Voy(length(Voy)+1)=Voy(length(Voy)) 
Vmx=sqrt(Voy.*Voy+Vox.*Vox); 
theta=atan(Voy./Vox); 
%%Speed's equations 
Voy=Vmx.*sin(theta); 
Vox=Vmx.*cos(theta); 
x=0; 
y=0; 
t=0; 
figure; 

ph = plot(x,y,'--gs',... 
    'LineWidth',2,... 
    'MarkerSize',30,... 
    'MarkerEdgeColor','b',... 
    'MarkerFaceColor',[0.5,0.5,0.5]); 

set(gca,'XLim',[0 10]); 
set(gca,'YLim',[-2 2]); 

for i=1:1:length(Voy); 

    x=Vox(i)*(t); 
    y=Voy(i)*0.1; 
    set(ph,'XData',x); 
    set(ph,'YData',y); 
    pause(0.05) 
    t=t+0.1; 
end 

트릭 for-loop에서 데이터를 업데이트합니다. I 수동 그렇지

set(gca,'XLim',[0 10]); 
set(gca,'YLim',[-2 2]); 

그것이 의한 X- 및 축 Y-한도를 설정 한 것 또한

set(ph,'XData',x); 
set(ph,'YData',y); 

: 이는 플롯 Object의 XDataYData 속성을 변경함으로써 수행 될 수있다 여러 단계에서 설정된 현재 데이터에 따라 동적으로 설정됩니다.

+0

내 문제의 대부분을 해결해 주셔서 감사합니다. 여전히 로봇의 실제 동작에 더 가까워 지도록 선 위로 사각형 (로봇)의 방향을 제어하고 싶으므로 마지막 마커를 사용하여이를 달성 할 수 있습니다. –

+1

즉, 사각형을 "기울이거나"사각형의 각도를 제어하고 싶습니까? 현재 시각화를 위해 마커를 사용하고 있습니다. 함수로 마커 방향을 조정할 수 없기 때문에 'patch'와 같은 것을 사용하여 로봇을 시각화하는 것이 좋습니다. – bushmills