import numpy as np
from mayavi import mlab
from sympy import *
from mayavi.mlab import *
q = 1 #電荷量
e0 = 4*3.14*8.85 #4×pi×ε0 放大10的12次方
def cacualte():
x, y, z = np.mgrid[-1:1:20j, -1:1:20j,-1:1:20j]#x y z網(wǎng)格化,形成填充三維坐標(biāo)數(shù)組
r=np.sqrt(x**2+y**2+z**2)#與原點(diǎn)距離
E_scale = q/(e0*(r**2))#電場(chǎng)大小
Exoy = E_scale*(np.sqrt(x**2+y**2)/r)#電場(chǎng)在XOY投影大小
Ex = Exoy*(x/np.sqrt(x**2+y**2))#電場(chǎng)在X分量大小
Ey = Exoy*(y/np.sqrt(x**2+y**2))#電場(chǎng)在Y分量大小
Ez = E_scale*(z/r)#電場(chǎng)在Z分量大小
u = Ex #三坐標(biāo)分量賦值
v = Ey
w = Ez
scalars = x * x * 0.5 + y * y + z * z * 2.0#切片范圍
ball = mlab.points3d(np.array(0), np.array(0.), np.array(0),color=(1,0,0),extent = [-0.01,0.01,-0.01,0.01,-0.01,0.01])#插入小球代表電荷
obj1 = volume_slice(x,y,z,scalars, plane_orientation='x_axes',extent = [-1,1,-1,1,1,1])#插入切片以觀察矢量場(chǎng)
obj = quiver3d(x, y, z, u, v, w, mask_points=1)#繪制3d矢量場(chǎng)
return obj
cacualte()
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
