我正在尝试使用Python创建圆柱3D表面图,其中我的自变量为ztheta,因变量为radius(即radius是垂直位置和方位角的函数) 。
到目前为止,我只能找到创建3D表面图的方法:


具有z作为rtheta的函数
具有r作为z的函数,但不会随theta改变(因此,最终产品看起来像是旋转轮廓;例如,r = sin(z) + 1的情况)。


我想将r作为ztheta的函数,因为我的函数将产生一个形状,该形状在任何给定高度都将是theta的复杂函数。
最重要的是,我需要曲面图能够具有(但不一定必须具有,取决于函数的属性)开放的顶部或底部。例如,如果rz = 0z = 1(理想的圆柱体)是恒定的,我希望得到一个仅由圆柱体侧面而不是顶部或底部组成的表面图。情节应该看起来像空心的外壳。

我已经定义了功能r

谢谢你的帮助!

最佳答案

显然,经过一番尝试和错误之后,在这种情况下,最好/最简单的方法是仅转换rthetaz数据点(定义为2D数组,就像绘图)转换成笛卡尔坐标:

# convert to rectangular
x = r*numpy.cos(theta)
y = r*numpy.sin(theta)
z = z


可以绘制新的x,y,z数组,就像从多项式生成的其他x,y,z数组一样,其中x,y,zz的函数。我原本以为,由于重叠的x,y值会弄乱数据点,或者相邻的数据点可能无法正确连接,但是显然不是这种情况。

关于python - 在Python中绘制3D圆柱曲面图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30336017/

10-13 08:59