【发布时间】:2015-05-09 07:58:38
【问题描述】:
由于我不能很好地手工绘制,我使用 python/matplotlib 来绘制一个球体和一个圆柱体,而不是“切穿”并制作一条曲线。 圆柱有方程
x^2+y^2-a*x=0
球体是用方程完成的:
x^2+y^2+z^2=a^2
我输入 a 并绘制球体
# -*- coding: utf-8 -*-
from numpy import*
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure()
ax=Axes3D(fig)
a=input('a? ')
u,v=mgrid[0:2*pi:20j,0:pi/2:10j]
x=a*cos(u)*sin(v)
y=a*sin(u)*sin(v)
z=a*cos(v)
ax.plot_wireframe(x,y,z,color='b')
ax.set_xlabel("x"); ax.set_ylabel("y"); ax.set_zlabel("z")
plt.show()
plt.close()
现在我想画圆柱体,如果可以的话,画出两个图形相交的曲线......但不知道......
我想我忘了说这是 xyz 坐标的第一部分(全部为正)
【问题讨论】:
-
你的圆柱方程不正确。
-
是的...我看到写得不好...但是可以理解吗?
-
不是交点总是一个圆(在赤道上如果 a(cyl) == a(sph)?你是否打算将圆柱在 x 和 y 方向上位移一个金额?
-
交点不是一个圆,而是一个球楔,我想要从 (a,0,0) 到 (0,0,a) 的曲线;(
-
@LyonBuster 刚刚在我的回答中添加了一个稍微修改过的代码版本来帮助你
标签: python matplotlib geometry