我正在尝试创建三角形的动画图,最终结果应该是十个三角形,后面是两个更大的三角形,后面是一条直线。使用matlab documentation,我最终得到了这个,这导致了一个动画的罪恶情节:
h = animatedline;
axis([0 4*pi -1 1])
x = linspace(0,4*pi,2000);
for k = 1:length(x)
y = sin(x(k));
addpoints(h,x(k),y);
drawnow
end
问题是情节真的很慢,一旦我将y=sin(x(k))
改为三角形,它就会变得更糟。有没有更好的方法来制作动画情节或至少调整速度? (如果速度不依赖于计算机)
答案 0 :(得分:1)
你可以通过
加快速度y
向量,而不是计算循环中的每个值。XData
的{{1}}和YData
属性,而非使用plot
。代码变为:
animatedline
但速度的提升很小。如果你需要更快的速度,你可能需要减少点数。
答案 1 :(得分:0)
您可以检查comet
函数以设置曲线的动画:
t = linspace(0,4*pi,2000);
comet(t, sin(t));
为曲线设置动画会更平滑,更容易(参见其documentation)。
此外,对于3d曲线,您可以使用comet3
。