具有多个半径的单线与Mayavi

时间:2017-01-20 16:33:25

标签: python vtk mayavi

我试图在Mayavi中绘制一条具有非恒定宽度或半径的线(或管)。这似乎是一项简单的任务,但我可能无法理解幕后发生的事情,以便实现这一目标。

以下代码创建了我想要的行,我可以按颜色缩放;但是,我还希望按宽度进行缩放。

import mayavi.mlab as mlab
import numpy as np

x = range(100)
y = range(100)
z = range(100)
s = np.random.uniform(0, 1, 100)

mlab.plot3d(x, y, z, s, tube_radius=10)

enter image description here

我没有所需输出的图像,因为我无法创建它,尽管它基本上是由半径而不是颜色缩放的前一图像,因此该行的某些区域将比别的地方。一种可能的解决方案是使用tube_radius参数并单独绘制每个部分,尽管这看起来很糟糕,因为线条可能会很长并且有很多不同的部分。

1 个答案:

答案 0 :(得分:1)

在GUI中,您可以转到Tube管道并使用Vary_radius = 'vary_radius_by_scalar'

在脚本中你可以做到

import mayavi.mlab as mlab
import numpy as np

x = range(100)
y = range(100)
z = range(100)
s = np.random.uniform(0, 1, 100)

t = mlab.plot3d(x, y, z, s, tube_radius=10)
t.parent.parent.filter.vary_radius = 'vary_radius_by_scalar'

由于曲面的父级是模块管理器(颜色等),其父级是Tube管道