0

まず、貢献してくれたすべての人に感謝します。

軌跡に沿って、原点から XYZ 値まで、線の最後にマーカーを付けて線をアニメーション化したいと考えています。私の軌道には 2000 個の XYZ 値が含まれており、半円を描いて移動します。ただし、前の行を消去できないようです。つまり、Matlab はすべての XYZ 値で線を描画します。私のコードをチェックして、私が間違っていることを教えてください。

figure(1);
grid on;
xlim([-2.5,2.5]);
xlabel('X Axis');
ylim([-2.5,2.5]);
ylabel('Y Axis');
zlim([-2.5,2.5]);
zlabel('Z Axis');

set(gcf,'Renderer','OpenGL');
h = plot(x(1),y(1),z(1),0,'o','MarkerSize',10,'MarkerFaceColor','b');
set(h,'EraseMode','normal');

i = 1;

while i <= length(x)  
  set(h,'XData',x(i));
  set(h,'YData',y(i));
  set(h,'ZData',z(i));
  line([0 x(i)],[0 y(i)],[0 z(i)],'LineWidth',2,'EraseMode','normal');
  drawnow;
  i = i + 1;
end
4

2 に答える 2

0

古いものは削除しません。

次のようなものを使用します。

delete(l)  % if it exists  
l = line([0 x(i)],[0 y(i)],[0 ....
于 2013-03-08T08:11:06.483 に答える
0

あなたが探しているのは、次の反復を描画する前に図の内容をクリアすることです。clfそのため、最初に while ループで使用してみてください。

ドキュメントは次のとおりです。clfリファレンス - Mathworks

于 2013-03-08T06:58:31.100 に答える