2017-05-11 8 views
1

円筒面の上端/下端を生成しようとしています。私はここで外側の表面を得ることができました:Generating a Cylindrical Surface with np.outer。一貫性のためにnp.outerを再度使用したいと思います。私は私が正しく理解している場合、その後、次は動作するはずですが、リンクで答えを理解考えた:3DのPython 2Dサーフェスサーフェス

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を正しく使用していませんか?サーフェスが生成されないのはなぜですか?

答えて

1

作成しているすべてのポイントが中心と同じ距離にあり、「内側の円」と「外側の円」の間にあるサーフェスは無限に薄いため、可視ディスクはありません。ディスクを見るには、半径を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() 

created disk

関連する問題