我试着用vpython来可视化棱镜的电势。我的代码正在工作,我得到了正确的20x20数组的数据,但无法找出一种方法来表示这一点使用三维对象在vpython。对于这个问题,我想用20x20对象(长方体)创建一个网格,这些对象(长方体)与数组中的20x20点相对应,并且随着数组中对应的点的值变大,在z方向上增加长方体的长度。可以这样做吗?谢谢您!你知道吗
from visual import*
from visual.graph import*
import numpy as np
lenx = leny = 20
vguess= 0
x,y = np.meshgrid(np.arange(0,lenx), np.arange(0,leny))
v = np.empty((lenx,leny))
v.fill(vguess)
v[8:13,8:13] = 1
deltav = .01
maxit = 9
dV = 1
f1 = gdots(color = color.red)
while dV> 1e-5:
for i in range(1,lenx-1):
for j in range(1,leny-1):
if v[i,j] != 1:
tmp = v[i,j]
v[i,j] = .25*(v[i+1][j] + v[i-1][j] + v[i][j+1] + v[i][j-1])
dV = abs(v[i,j]-tmp)
print v
目前没有回答
相关问题 更多 >
编程相关推荐