马亚维岛同一地点的多重阴谋

2024-04-23 13:45:15 发布

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

我试着在R3中画出这个“F”向量函数。以及以半径Pi/2为中心的球体。在

  • 我不明白为什么向量和球体不在同一个位置。在
  • 我不明白mlab轴“轴可见性”,我只想显示通常的x,y,z轴。在

抱歉,如果这对某些人来说是显而易见的,但是我浏览了标准文档、几个示例和google搜索了几个小时,我还是一头雾水。在

The function

我当前的Mayavi结果和代码:

Mayavi Results

import numpy as np
from mayavi import mlab


# Functions
def h(t):
    return np.exp(-1/t) * (1/np.cos(t))


def F(x, y, z):
    norm = np.linalg.norm([x, y, z])
    h_norm = (h(norm)/norm)
    return [x*h_norm, y*h_norm, z*h_norm]


# Vectors
x, y, z = np.meshgrid(np.arange(-2, 2, 0.5),
                      np.arange(-2, 2, 0.5),
                      np.arange(-2, 2, 0.5))

u, v, w = F(x, y, z)

src = mlab.pipeline.vector_field(u, v, w)
mlab.pipeline.vectors(src, mask_points=20, scale_factor=.5)

# Ball
dphi, dtheta = np.pi/250.0, np.pi/250.0
[phi, theta] = np.mgrid[0:2*np.pi:dphi,
                        0:np.pi:dtheta]
r = np.pi / 2

x2 = r*np.sin(theta)*np.cos(phi)
y2 = r*np.sin(theta)*np.sin(phi)
z2 = r*np.cos(theta)

s = mlab.mesh(x2, y2, z2)

#mlab.axes(x_axis_visibility=True, y_axis_visibility=True)

# View it all.

mlab.outline()
mlab.show()

Tags: importsrcnormreturndefnppisin