【发布时间】:2016-11-24 11:06:48
【问题描述】:
当我知道顶点的坐标、圆锥所在的向量(作为已知终点坐标的线段)和圆锥的高度时,如何在 matplotlib 中绘制 3 维圆锥或任何其他 python 绘图模块?
我想最有帮助的是一些关于在 matplotlib 中绘制隐式函数的说明。
我尝试的是创建一个点(x、y 和 z)网格,定义圆锥方程,并检查每个网格点是否满足圆锥方程(因为网格分辨率可能意味着它不会完全满足方程,我检查它是否满足方程达到一定的精度)。但是,我现在不确定如何在 matplotlib 中绘制这个隐式数据集。我尝试将方程(涉及 x、y 和 z 中的二次项和线性项)写成 z 中的二次项,求解 z 并根据 x 和 y 用 z 执行曲面图,但这给了我一个平面而不是一个圆锥体。
这是我使用的代码:
x = np.linspace(0,100,100)
y = np.linspace(0,100,100)
z = (-4823.7 + np.sqrt(abs((4823.7**2) - (4*(-240.185)*((-5692*y) - (240.185*np.multiply(x,x)) - (240.185*np.multiply(y,y)) - 57607.26 )) ))/np.float(2*(-240.185)))
#print z
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.arange(-50.0, 50, 1)
y = np.arange(-50.0, 50, 1)
X, Y = np.meshgrid(x, y)
ax.plot_surface(X, Y, z)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
【问题讨论】:
-
StackOverflow 上的普遍共识是,提问者需要自己解决问题。一方面,这意味着寻找可能的解决方案,并在问题中提及它们,明确说明它们在多大程度上不能解决您的问题。另一方面,它意味着在尝试解决问题时显示一些代码。
标签: python matplotlib plot