制作旋转圆锥的动画,前一帧不会被擦除



我一直在使用matplotlib中的funcAnimation制作围绕某个轴旋转的圆锥体的动画。但是,当动画发生时,上一个圆锥体不会从上一帧中删除,因此结果是圆锥体的连续流动。

有人知道我如何删除我绘制的圆锥体吗?我用了ax.plot((.

我分别画出圆锥体的每个点,如下所示:

for n, z in enumerate(zvec):
x = lcone * z * np.array([cos(q) for q in theta])
y = lcone * z * np.array([sin(q) for q in theta])
xr, yr, zr = dot(rot12, array([x,y,z]))
ln=ax.plot(xr, yr, zr, 'b-', lw=3, alpha=0.5)

所以我想问题是如何将这些点组合在一起?

此外,如果你对制作一个绕轴旋转的圆锥体有任何其他建议,那将非常有帮助。

根据您正在进行的操作,您需要在再次绘制之前完全清除绘图。我建议把代码写成

for n, z in enumerate(zvec):
x = lcone * z * np.array([cos(q) for q in theta])
y = lcone * z * np.array([sin(q) for q in theta])
xr, yr, zr = dot(rot12, array([x,y,z]))

plt.clf() #clears entire frame
ln=ax.plot(xr, yr, zr, 'b-', lw=3, alpha=0.5) #draw the new cone

您应该查看该方法的文档。

此外,Matplotlib还支持带有专用模块的动画,也许可以看看这里。

最新更新