好吧,我想你真的是要求绕一个轴旋转一个二维曲线来创建一个曲面。我有CAD背景,所以我就是这样解释的。
我的数学不是最棒的,所以请原谅任何晦涩难懂的术语。不幸的是,你必须完成剩下的数学运算来得到网格的所有点。在
以下是您的代码:#import for 3d
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
将arange更改为捕捉端点的linspace,否则arange将丢失数组末尾的3.0:
^{pr2}$
因为rho是你在每个z高度的半径,我们需要计算这个半径周围的x,y点。在这之前,我们必须弄清楚在这个半径上的什么位置可以得到x,y坐标:#steps around circle from 0 to 2*pi(360degrees)
#reshape at the end is to be able to use np.dot properly
revolve_steps = np.linspace(0, np.pi*2, 600).reshape(1,600)
获得圆周围点的三角法是:
x=r*cos(θ)
y=r*sin(θ)
对你来说r是你的rho,θ是旋转步数
通过使用美国运输部要做矩阵乘法,你得到一个2d数组,其中x和y的行将对应于ztheta = revolve_steps
#convert rho to a column vector
rho_column = rho.reshape(600,