Python中如何围绕Y轴旋转一维分段函数
我有一个一维分段形状,看起来像一个有光滑边缘的矩形(四分之一圆):Python中如何围绕Y轴旋转一维分段函数,python,numpy,matplotlib,rotation,Python,Numpy,Matplotlib,Rotation,我有一个一维分段形状,看起来像一个有光滑边缘的矩形(四分之一圆): 将numpy导入为np 将matplotlib.pyplot作为plt导入 def分段(x、r、d、h): 如果-d/2,什么是“2D圆柱体”?如果你在2D中旋转任何形状,它都会变成一个圆。对不起,我的意思是旋转一个长方形的1D函数来得到一个圆柱体。搜索 import numpy as np import matplotlib.pyplot as plt def piecewise(x, r, d, h): if
将numpy导入为np
将matplotlib.pyplot作为plt导入
def分段(x、r、d、h):
如果-d/2,什么是“2D圆柱体”?如果你在2D中旋转任何形状,它都会变成一个圆。对不起,我的意思是旋转一个长方形的1D函数来得到一个圆柱体。搜索
import numpy as np
import matplotlib.pyplot as plt
def piecewise(x, r, d, h):
if -d/2 <= x <= - d/2 + r or d/2- r <= x <= d/2:
return np.sqrt(r**2-(x-np.sign(x)*d/2+np.sign(x)*r)**2)+r+(h-2*r)
elif -d/2 - r <= x <= -d/2 or d/2 <= x <= d/2 + r:
return -np.sqrt(r**2-(x- np.sign(x)*d/2-np.sign(x)*r)**2)+r
elif - d / 2 + r < x < d / 2 - r:
return 2*r+(h-2*r)
return 0.0
vpiecewise = np.vectorize(piecewise)
x = np.linspace(-20, 20, 10000)
z = vpiecewise(x, 4, 20, 10)
plt.plot(x, z, '-')
plt.show()