gpt4 book ai didi

python - 具有连接信息的 VTK 着色管过滤器

转载 作者:行者123 更新时间:2023-12-05 06:41:28 25 4
gpt4 key购买 nike

我有一个分子,我想用球体和连接它们的 pipe 来表示。我想根据连接信息给 pipe 上色。这意味着我有各种断开连接的区域或断开连接的组件,我想对每个区域进行不同的着色。到目前为止,我有这个,在 python 中并且它有效。我已经评论了我为实现这一目标所做的努力。变量 data 是一个 PolyData 数组,其中包含具有连接信息的点、标量和单元格。

tube = vtk.vtkTubeFilter()
tube.SetInput(data)
tube.SetNumberOfSides(5);
#tube.SetVaryRadiusToVaryRadiusByAbsoluteScalar()
tube.SetVaryRadiusToVaryRadiusOff()
tube.SetRadius(0.1)

"""appendFilter = vtk.vtkAppendPolyData()
appendFilter.AddInputConnection(tube.GetOutputPort())
appendFilter.Update()

connectivityFilter = vtk.vtkPolyDataConnectivityFilter()
connectivityFilter.SetInputConnection(appendFilter.GetOutput())
connectivityFilter.ScalarConnectivityOn()
connectivityFilter.FullScalarConnectivityOn()
connectivityFilter.SetExtractionModeToAllRegions()
connectivityFilter.ColorRegionsOn()
connectivityFilter.Update()
"""
#print (connectivityFilter.GetNumberOfExtractedRegions())

tubeMapper = vtk.vtkPolyDataMapper()
tubeMapper.SetInputConnection(tube.GetOutputPort())
tubeMapper.Update()

这是目前的样子 enter image description here

最佳答案

我确实有一些东西在工作,但我不确定连接定义是否有问题。我只是忘记了 getOutputPort 中的“端口”一词。无论如何,这就是答案(我省略了原子和管半径以及其他不相关的选项)

tube = vtk.vtkTubeFilter()
tube.SetInput(data)
tube.SetVaryRadiusToVaryRadiusOff()
tube.SetRadius(tuberad)

appendFilter = vtk.vtkAppendPolyData()
appendFilter.AddInputConnection(tube.GetOutputPort())
appendFilter.Update()

connectivityFilter = vtk.vtkPolyDataConnectivityFilter()
connectivityFilter.SetInputConnection(appendFilter.GetOutputPort())
connectivityFilter.SetExtractionModeToAllRegions()
connectivityFilter.ColorRegionsOn()
connectivityFilter.Update()

tubeMapper = vtk.vtkPolyDataMapper()
tubeMapper.SetInputConnection(connectivityFilter.GetOutputPort())
tubeMapper.SetScalarRange(connectivityFilter.GetOutput().GetPointData().GetArray("RegionId").GetRange())
tubeMapper.Update()

它最终看起来不错,但您可能会注意到一些明显连接的组件的颜色仍然不同,我仍然想知道为什么。

enter image description here

关于python - 具有连接信息的 VTK 着色管过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40482631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com