matplotlib中的收缩椭球

2024-06-11 14:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉matplotlib的动画,我正在尝试制作缩小椭球的动画

具体地说,我想为一个按比例收缩其轴的椭球设置动画(从数学上讲,我在寻找e^(-t)乘以每个轴的收缩因子,其中t是时间。)

我做了一个时间t的函数,输出一个静态椭球体,代码如下:

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from mpl_toolkits.mplot3d import Axes3D

def param_surface(t):
    fig = plt.figure(figsize = (10, 10))
    ax = fig.add_subplot(111, projection='3d')

    u = np.linspace(0, 2 * np.pi, 100)
    v = np.linspace(0, np.pi, 100)

    x = axis_a(4 * t / 50) * np.outer(np.cos(u), np.sin(v))
    y = axis_a(4 * t / 50) * np.outer(np.sin(u), np.sin(v))
    z = axis_b(4 * t / 50) * np.outer(np.ones(np.size(u)), np.cos(v))

    return(ax.plot_surface(x, y, z, rstride = 4, cstride = 4))

我看过一些动画(比如这里的:https://pythonmatplotlibtips.blogspot.com/2018/11/animation-3d-surface-plot-funcanimation-matplotlib.html),它们可以让你制作三维绘图的动画,其中z被定义为x,y的函数。然而,在收缩椭球体的情况下,我需要使用球坐标,这使事情变得复杂

有人能解释一下我的代码要添加什么,才能从静态变为所需的收缩动画吗


Tags: 函数代码importmatplotlibasnp时间静态