怎么用python绘制3d动态模型

2024-04-16

要使用Python绘制3D动态模型,可以使用一些库如matplotlib和mayavi。下面是一个简单的例子使用matplotlib和numpy库来创建一个旋转的3D立方体的动态模型:

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

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 创建立方体的顶点
r = [-1, 1]
X, Y = np.meshgrid(r, r)
Z = np.ones_like(X)
verts = [list(zip(X.flatten(), Y.flatten(), Z.flatten())),
         list(zip(X.flatten(), Y.flatten(), -Z.flatten())),
         list(zip(X.flatten(), -Z.flatten(), Y.flatten())),
         list(zip(X.flatten(), Z.flatten(), Y.flatten())),
         list(zip(-Z.flatten(), Y.flatten(), X.flatten())),
         list(zip(Z.flatten(), Y.flatten(), X.flatten()))]

# 绘制立方体
poly3d = [[verts[0], verts[1], verts[4], verts[5]],
          [verts[2], verts[3], verts[4], verts[5]],
          [verts[0], verts[1], verts[2], verts[3]]]

# 绘制每一帧
def animate(i):
    ax.clear()
    ax.view_init(elev=30, azim=i)
    ax.add_collection3d(Poly3DCollection(poly3d, facecolors='cyan', linewidths=1, edgecolors='r', alpha=.25))
    return fig,

# 创建动画
ani = animation.FuncAnimation(fig, animate, frames=360, interval=50, blit=False)

plt.show()

这段代码会创建一个旋转的3D立方体的动态模型。您可以根据自己的需求调整立方体的大小,颜色以及旋转的速度等参数。希望对您有帮助!