簡體   English   中英

如何繪制具有非恆定半徑的圓柱體

[英]How to plot a cylinder with non-constant radius

我編寫了代碼來生成一個具有恆定固定半徑的圓柱體:

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from math import sin, cos, pi

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

theta = np.linspace(-2*pi,2*pi, 600)
Z = np.linspace(0,1,700)

Z,theta = np.meshgrid(Z, theta)

R = 0.1
X = (R*np.cos(theta))
Y = (R*np.sin(theta))

ax.plot_surface(X,Y,Z,linewidth = 0,facecolor = 'r', shade = True, alpha = 0.6)
plt.show()

如何更改此值以使圓柱半徑可以變化。 例如,圓柱體一端的半徑從0.1開始,每個連續的“圓”繪制的半徑比之前的半徑大0.01? 換句話說,我希望將具有不同半徑的圓圈“連接”在一起,形成一個半徑不等的圓柱體。

改變了R = np.linspace(0,1,700)

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from math import sin, cos, pi

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

theta = np.linspace(-2*pi,2*pi, 600)
Z = np.linspace(0,1,700)

Z,theta = np.meshgrid(Z, theta)

R = np.linspace(0,1,700)
X = (R*np.cos(theta))
Y = (R*np.sin(theta))

ax.plot_surface(X,Y,Z,linewidth = 0,facecolor = 'r', shade = True, alpha = 0.6)
plt.show()

你也可以嘗試像R = np.sin(np.linspace(0,1,700) * 4) + 1這樣的函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM