我正在尝试生成圆柱表面的顶部/底部。我可以在这里获得侧面:Generating a Cylindrical Surface with np.outer。我想再次使用np.outer来保持一致性。我以为我理解了链接中的答案,但是,如果我理解正确,那么以下应该起作用:

R = 5
h = 5
u = np.linspace(0,  2*np.pi, 100)
x = R * np.outer(np.ones(np.size(u)), np.cos(u))
y = R * np.outer(np.ones(np.size(u)), np.sin(u))
z = h * np.outer(np.ones(np.size(u)), np.ones(np.size(u)))


但是在我的图中,没有生成曲面。我仍然没有正确使用np.outer吗?为什么没有产生表面?

最佳答案

没有可见的磁盘,因为您要创建的所有点到中心和曲面的距离都完全相同,并且“内圆”和“外圆”之间的距离无限细。为了查看磁盘,半径需要在0和所需的值之间变化(示例中为5)。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

R = np.linspace(0, 5, 100)
h = 5
u = np.linspace(0,  2*np.pi, 100)

x = np.outer(R, np.cos(u))
y = np.outer(R, np.sin(u))

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x,y,h) # z in case of disk which is parallel to XY plane is constant and you can directly use h
fig.show()


python - 3D中的Python 2D圆形曲面-LMLPHP

关于python - 3D中的Python 2D圆形曲面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43925577/

10-11 07:21