1

我最近开始使用python。目前我正在研究一个模拟二进制开始围绕中心运动的项目。

我想用一个围绕固定中心旋转的球体来表示开始。我将 x、y、z 值存储在三个不同的列表中。

我在互联网上看了很多,但找不到任何帮助。我成功地在 2D 中模拟了它,但我想要它的 3D 版本。

我在 Python 中使用 matplotlib。

任何帮助都是不言而喻的。

另一种可能性:我可以为 x、y 和 z 的每个值获取单独的图,以便我可以缝合它们并制作动画吗?我的主要问题是,如何用球体表示每个 (x, y, z) 点?

4

1 回答 1

3

VPython非常适合这种类型的可视化。例如,要获得一个 3D 球体,您只需使用命令sphere(pos=(1,2,3)),动画就超级简单。VPython 基本上是为您正在谈论的可视化类型而设计的,它会运行得很快,而在 matplotlib 中,您必须从球体的方程开始,它会运行得很慢。

这是一个简单的动画,显示了一个球在盘子上弹跳(来源):

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = abs(ball.velocity.y)
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

球,在可视化 Python 窗口中呈现

在评论中,其他人推荐了 VTK(或 MayaVi,它是 VTK 的一个很好的包装器)。VTK 可以很好地工作,但学习起来要困难得多。我将使用 VTK 进行复杂的 3D 可视化数据探索,但对于您的问题,这太过分了。

于 2013-06-16T17:24:28.507 回答