【问题标题】:Is there a way to pre-render VPython animations to make them run smoother?有没有办法预渲染 VPython 动画以使其运行更流畅?
【发布时间】:2020-01-17 15:45:35
【问题描述】:

我有一个动画,它使用 sgp4 绘制了地球周围大约 3000 颗卫星的所有位置。这 3000 颗卫星的位置每秒计算一次,然后进行动画处理,每秒从卫星上计算出地球上的经度和纬度也使用 ephem 计算。我想在地球周围绘制这些位置,以便在现实生活中的一秒钟内,您可以看到 3000 颗卫星在周围移动 5 分钟左右。地球和卫星的动画是用VPython制作的。

但是,这个过程非常缓慢。有没有办法让我的电脑在播放之前渲染动画,这样我可以更流畅地播放动画?我考虑过添加一个“等待点击”,然后在渲染完所有内容后截取屏幕截图,但完成我的动画需要大约 7200 个屏幕截图。这会是一个更好的解决方案吗?如果是这样,是否有一个程序可以为我做到这一点?

谢谢

【问题讨论】:

  • 您可以尝试使用 PyPy 运行 VPython 程序以加快速度。当我使用 pypy3 vs python 运行 vpython 程序时,我注意到它的速度提高了 10 倍。我使用的 vpython 程序是一个盒子里的气体,它计算了盒子里 500 个气体粒子的位置,并带有气体粒子之间的碰撞检测。使用 pypy3 程序循环运行速度提高了 10 倍。 github.com/jcoady/Gas/blob/master/Gas.py

标签: python-3.x vpython


【解决方案1】:

查看 vpython FAQ 对问题的回答 问:有没有办法将 VPython 图形输出捕获为电影?

https://vpython.org/contents/FAQ.html

要查看 vpython 如何执行运行包含 1000 个对象的动画,请参见此处的 vpython 演示程序 RotatingCubes-VPython

https://www.glowscript.org/#/user/GlowScriptDemos/folder/Examples/program/RotatingCubes-VPython

这个程序使用glowscript vpython,它将vpython编译成javascript并在网页中运行。您获得的性能将取决于您的计算机的速度。如果您复制该程序并将立方体的数量从 10x10x10 = 1000 增加到 14x14x14 = 2744,那么您可以在 Glowscript 创建一个免费帐户并在那里运行您修改后的程序。您也可以尝试在您当前的 vpython 环境中运行此演示程序,只需将程序的第一行替换为“from vpython import *”即可。

约翰

【讨论】:

    猜你喜欢
    • 2012-07-10
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2017-07-20
    • 2016-01-21
    • 1970-01-01
    相关资源
    最近更新 更多