我正在尝试使用Python创建圆柱3D表面图,其中我的自变量为z
和theta
,因变量为radius
(即radius
是垂直位置和方位角的函数) 。
到目前为止,我只能找到创建3D表面图的方法:
具有z
作为r
和theta
的函数
具有r
作为z
的函数,但不会随theta
改变(因此,最终产品看起来像是旋转轮廓;例如,r = sin(z) + 1
的情况)。
我想将r
作为z
和theta
的函数,因为我的函数将产生一个形状,该形状在任何给定高度都将是theta
的复杂函数。
最重要的是,我需要曲面图能够具有(但不一定必须具有,取决于函数的属性)开放的顶部或底部。例如,如果r
从z = 0
到z = 1
(理想的圆柱体)是恒定的,我希望得到一个仅由圆柱体侧面而不是顶部或底部组成的表面图。情节应该看起来像空心的外壳。
我已经定义了功能r
。
谢谢你的帮助!
最佳答案
显然,经过一番尝试和错误之后,在这种情况下,最好/最简单的方法是仅转换r
,theta
和z
数据点(定义为2D数组,就像绘图)转换成笛卡尔坐标:
# convert to rectangular
x = r*numpy.cos(theta)
y = r*numpy.sin(theta)
z = z
可以绘制新的
x,y,z
数组,就像从多项式生成的其他x,y,z
数组一样,其中x,y,z
是z
的函数。我原本以为,由于重叠的x,y
值会弄乱数据点,或者相邻的数据点可能无法正确连接,但是显然不是这种情况。关于python - 在Python中绘制3D圆柱曲面图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30336017/