我在一个课程的项目中工作,预测太阳系行星(和其他物体)的速度和位置。如果我可以可视化预测对象的数据,如果可以生成3D图像,如果在视频中这是令人惊叹的,那将是非常酷的。你知道有什么库可以让我使用这些数据来生成图像或视频吗?(我不关心使用哪种语言)
数据:
半径模拟步骤( video)
/or colours of
)
提前感谢,欢迎任何建议。
发布于 2010-05-04 21:43:31
对于这种类型的可视化,我使用了几种方法(都是通过Python):
VPython非常容易学习,你可以在几分钟内获得行星围绕太阳旋转的动态3D可视化。也有一些贡献可以帮助制作电影,但我还没有用过这些。
也可以直接使用OpenGL,比如通过wxPython窗口中的PyOpenGL,或者使用PyGlet。这种方法比VPython更基本,可能需要更长的时间,而我知道的唯一制作电影的方法是通过屏幕截图等。
VTK是一个非常令人印象深刻的3D可视化库,但学习起来要难得多。VTK,像其他的一样,将进行开箱即用的动态可视化,并且它是唯一一个具有用于制作图像和电影的内置模块。虽然它是一个复杂得多的库,但如果你想让行星围绕恒星旋转,并在矢量场离子风暴中绘制气体云的等高线图,VTK可以做到。还有MayaVi,它使得VTK更容易访问和交互。
发布于 2010-05-04 03:22:20
我有一个非常粗略的想法,这可能是一个有用的起点,尽管它需要相当多的充实,才能看起来适当的专业。你的数据给出了每个行星在给定时间点在空间中的位置吗?如果是这样,您可以:
1)如果你的位置数据最初是3-D的,那么将它投影到twospace中(允许你使用2-D方法来表示看起来仍然在屏幕上以3-D形式显示的数据)
2)结果应该是一系列存储行星位置的2-D矩阵。如果矩阵元素对应于行星的位置,则矩阵元素为1,否则矩阵元素为0。(如果要绘制矩阵,它看起来就像黑色背景上的几个白点。)
3)使用使用形态膨胀来获取每个位置点,并将其相邻点的值设置为1而不是0,这样当您绘制时,您将获得一组以步骤(2)中的点为中心的圆盘状白色对象。
4)使用程序将(3)中的每个矩阵写入一个图像文件,并将它们放在一个公共文件夹中。
5)在运行时,使用另一个程序从文件夹中一次导入一张图像,并在同一图形窗口的屏幕上显示它们。结果应该是,代表时间t的行星的每一张图像都替换了时间(t-1)的图片。这在视觉上看起来应该与在该窗口中播放视频文件的效果相同。
最终的结果将是在黑色背景下的轨道上的一群白色圆圈的运动图像显示。这会有用吗?
https://stackoverflow.com/questions/2750591
复制相似问题