plot3 Not Animating with the Loop (Drawnow is already added)
3 次查看(过去 30 天)
显示 更早的评论
The 3D line is drawn with the mtm_x matrix set (3*2*100). In each loop, a set of 3*2 matrix is used to update the values of the line.
I checked that the values of Tip0 and TipX are updating. But the line stays in the initial position. (I've varied the loop no., but the line just stays there......)
Any suggestion?
![figure.PNG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/198893/figure.png)
mtm_x = mtm_x(:,:,1:100); % mtm_x is imported and become a 3*2*100 double
nt = length(mtm_x); % nt = 100
s=0.25;
figure(2);
grid on;
view(3);
for i = 1:nt
cla;
tip_x = mtm_x(:,:,i); % the 3D line is updated with i-th value set. e.g. for i=1, the first 3*2 matrix is used
%tip
TipO = tip_x(1:3,2);
TipX = tip_x(1:3,1).*s;
plot3([TipO(1) TipX(1)+TipO(1)], [TipO(2) TipX(2)+TipO(2)], [TipO(3) TipX(3)+TipO(3)], 'color', 'r', 'linewidth', 3);
hold on
axis([-0.5 0.5 -0.5 0.5 -0.5 0.5]);
drawnow;
end
Thanks!
3 个评论
Jan
2018-12-12
@Aqutris: :-) It will be hard to see a delay of a millisecond, when the monitor is updated with 60Hz. A longer pause would be useful.
采纳的回答
Jan
2018-12-12
编辑:Jan
2018-12-12
mtm_x = rand(3,2,100); % mtm_x is imported and become a 3*2*100 double
nt = size(mtm_x, 3); % do not rely on LENGTH
s = 0.25;
Lim = [0, 1];
axesH = axes('XLim', Lim, 'YLim', Lim, 'ZLim', Lim, ...
'NextPlot', 'add');
grid on;
view(3);
for i = 1:nt
tip_x = mtm_x(:,:,i);
TipO = tip_x(1:3,2);
TipX = tip_x(1:3,1) .* s;
plot3(axesH, ...
[TipO(1) TipX(1)+TipO(1)], ...
[TipO(2) TipX(2)+TipO(2)], ...
[TipO(3) TipX(3)+TipO(3)], ...
'color', 'r', 'linewidth', 3);
drawnow;
end
This is a cleaned version without the cla . I can see a bunch of lines. So what exactly is the problem?
Where do you try to display this? I do not see the intermediate images in Matlab online.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Performance 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!