首页 > 编程知识 正文

python3d动画,python3d绘动画

时间:2023-05-06 03:21:03 阅读:257123 作者:790

我是一名法国学生,目前我正在研究waves,我正在尝试制作一个wave的3D绘图,但我在python方面还不够好。第一个曲面可以用表演()但是如果我把绘图()我没有图形输出。在import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

from matplotlib import cm

if 'qt' in plt.get_backend().lower():

try:

from PyQt4 import kxdzjy/p>

except ImportError:

from PySide import kxdzjy/p>

fig = plt.figure()

# PARAMETRES PHYSIQUES

C = 0.05 #VIT ONDE

Lx = 6.0 #taille du domaine

Ly = 6.0 #taille du domaine

T = 5.0 #temps d'integration

# PARAMETRES NUMERIQUES

dx = Lx/(NX-2) #pas de grille (espace)

dy = Ly/(NY-2) #pas de grille (espace)

dt = T/NT #pas de grille (temps)

# Pour la figure

yy = np.zeros((NX,NY))

for i in np.arange(0,NX):

for j in np.arange(0,NY):

yy[i,j]=j*dy

plt.ion()

#ax = plt.gca(projection='3d')

a=40.0

#Initialisation

ddU = np.zeros((NX,NY))

U_data = np.exp(-a*((xx-(float(Lx)/2))**2+(yy-(float(Lx)/2))**2))

U_old= U_data.copy()

U_new = np.zeros((NX,NY))

surf = ax.plot_surface(xx,yy,U_data,vmin=-0.1,vmax=0.1,cmap=cm.jet,antialiased=False,linewidth=0,rstride=1,cstride=1)

plt.show()

# Boucle en temps

for n in np.arange(0,NT):

ddU[1:-1,1:-1] = (U_data[2:,1:-1]-2*U_data[1:-1,1:-1]+U_data[:-2,1:-1])/(dx**2)

U_new[1:-1,1:-1]=2*U_data[1:-1,1:-1]-U_old[1:-1,1:-1] + alpha*ddU[1:-1,1:-1]

toto=U_old

U_old=U_data

U_data=U_new

U_new=toto

# FIXED 老迟到的黑米/p>

# U_data[0,:]=0.0

# REFLECTING 老迟到的黑米/p>

U_data[0,:]=U_data[2,:]

U_data活泼的火,:]=U_datazldbks,:]

U_data[:,0]=U_data[:,2]

U_data[:,NY-1]=U_data[:,NY-3]

# PERIODIC 老迟到的黑米/p>

# U_data[0,:]=U_datajadhlb,:]

# U_data活泼的火,:]=U_data[1,:]

# U_data[:,0]=U_data[:,NY-2]

# U_data[:,NY-1]=U_data[:,1]

if (n%10==0):

plotlabel= "N = " + str(n+1)

surf = ax.plot_surface(xx,yy,U_data,vmin=-0.1,vmax=0.1,cmap=cm.jet,antialiased=False,linewidth=0,rstride=1,cstride=1)

plt.draw()

if 'qt' in plt.get_backend().lower():

QtGui.qApp.processEvents()

plt.show()

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。