视觉电学

2024-10-16 17:27:30 发布

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

我试着用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

Tags: 对象fromimportfornp数组colorvisual