我正在使用 python 3.5 和 mayavi 4.5.0 + vtk 7.1 (mayavi‑4.5.0+vtk71‑cp35‑cp35m‑win_amd64.whl 从 http://www.lfd.uci.edu/~gohlke/pythonlibs/#mayavi 下载),我遇到了一个问题。
我尝试运行官方文档给出的多行绘制示例,但在 vtkOutputWindow 中收到很多警告。 这些线最终会被绘制出来,但它非常慢,因为您必须等到所有警告都打印出来。
如何解决这个问题? 谢谢。
代码在这里:
http://docs.enthought.com/mayavi/mayavi/auto/example_plotting_many_lines.html
警告如下所示:
……
警告:在 D:\Build\VTK\VTK-7.1.1\Common\DataModel\vtkPolyData.cxx 中,第 1023 行
vtkPolyData (00000150D4F16FE0):构建VTK_TRIANGLE 482 少于三个点,但VTK_TRIANGLE 至少需要三个点。 检查输入。
警告:在 D:\Build\VTK\VTK-7.1.1\Common\DataModel\vtkPolyData.cxx 中,第 1023 行
vtkPolyData (00000150D4F16FE0):构建VTK_TRIANGLE 483 少于三个点,但VTK_TRIANGLE 至少需要三个点。 检查输入。
警告:在 D:\Build\VTK\VTK-7.1.1\Common\DataModel\vtkPolyData.cxx 中,第 1023 行
vtkPolyData (00000150D4F16FE0):构建VTK_TRIANGLE 484 少于三个点,但VTK_TRIANGLE 至少需要三个点。 检查输入。
警告:在 D:\Build\VTK\VTK-7.1.1\Common\DataModel\vtkPolyData.cxx 中,第 1023 行
vtkPolyData (00000150D4F16FE0):构建VTK_TRIANGLE 485 少于三个点,但VTK_TRIANGLE 至少需要三个点。 检查输入。
警告:在 D:\Build\VTK\VTK-7.1.1\Common\DataModel\vtkPolyData.cxx 中,第 1023 行
vtkPolyData (00000150D4F16FE0):构建VTK_TRIANGLE 486 少于三个点,但VTK_TRIANGLE 至少需要三个点。 检查输入。
……
我用 MacPort 在 Mac 上安装了 py3-mayavi,遇到了同样的问题:“vtkPolyData (0x7fac677c5290): Building VTK_TRIANGLE 99 with less than three points, but VTK_TRIANGLE至少需要三个点。检查输入。”
感谢您的问题,我可以重现它,看起来 VTK 7.1 中的某些更改打破了这个问题,我将在下周尝试修复。
当我将lines
创建为tube
时没有警告: lines= mlab.pipeline.tube(src, tube_radius=0.005, tube_sides=6)
。
@ying17zi它有效! 你拯救了一天,谢谢!
这个有更新吗? 管子真的不适合我。
我调查了这个。 显然问题是汽提过滤器,只有在您想使用管子时才需要它。 对于不需要它的行。 因此,如果您仅绘制线条,则可以放弃攻击性部分。 因此
# The stripper filter cleans up connected lines
#lines = mlab.pipeline.stripper(src)
# Finally, display the set of lines
mlab.pipeline.surface(src, colormap='Accent', line_width=1, opacity=.4)
它可以在没有警告的情况下工作。
干杯。
最有用的评论
当我将
lines
创建为tube
时没有警告:lines= mlab.pipeline.tube(src, tube_radius=0.005, tube_sides=6)
。