Python 为什么在添加vtkBandedPolyDataContourFilter时多边形曲面的颜色显示不均匀?
你好 当我添加vtkBandedPolyDataContourFilter实例以显示多边形的轮廓时, 多边形表面的颜色显示不均匀,如上图所示 如何在表面上均匀显示颜色 我显示了代码的重要部分 谢谢Python 为什么在添加vtkBandedPolyDataContourFilter时多边形曲面的颜色显示不均匀?,python,vtk,Python,Vtk,你好 当我添加vtkBandedPolyDataContourFilter实例以显示多边形的轮廓时, 多边形表面的颜色显示不均匀,如上图所示 如何在表面上均匀显示颜色 我显示了代码的重要部分 谢谢 # 1. POLYGON PART for i in range(num_of_polygons): # I drew two triangles separately. mesh_facetActor[i].GetProperty().SetC
# 1. POLYGON PART
for i in range(num_of_polygons): # I drew two triangles separately.
mesh_facetActor[i].GetProperty().SetColor(r,g,b)
# 2. CONTOUR PART
bounds = [0.0] * 6 # 6 is FIXED NUMBER! (xmin xmax ymin ymax zmin zmax)
polyD_src.GetBounds(bounds)
elev_Filter1 = vtk.vtkElevationFilter()
elev_Filter1.SetInputData(polyD_src)
elev_Filter1.SetLowPoint(0, bounds[2], 0)
elev_Filter1.SetHighPoint(0, bounds[3], 0)
elev_Filter1.SetScalarRange(bounds[2], bounds[3])
elev_Filter1.Update()
elev_Filter1Output___bpc_Filter2INPUT = elev_Filter1.GetPolyDataOutput()
scalarRange = elev_Filter1Output___bpc_Filter2INPUT.GetScalarRange()
nBands = 10
bands = self.MakeBands(scalarRange, nBands, False)
bpc_Filter = vtk.vtkBandedPolyDataContourFilter()
bpc_Filter.SetInputData( \
elev_Filter1Output___bpc_Filter2INPUT \
)
# Use either the minimum or maximum value for each band.
for i in range(0, nBands):
bpc_Filter.SetValue(i, bands[i][2])
bpc_Filter.SetScalarModeToIndex()
bpc_Filter.GenerateContourEdgesOn()
src_Mapper = vtk.vtkPolyDataMapper()
src_Mapper.SetInputConnection( bpc_Filter.GetOutputPort() )
src_Mapper.SetScalarRange( scalarRange )
src_Mapper.SetScalarModeToUseCellData()
src_Mapper.ScalarVisibilityOff()
src_Actor = vtk.vtkActor()
src_Actor.SetMapper(src_Mapper)
#self.renderer.AddActor(src_Actor) # I turned it off.
# Create contour edges
edge_Mapper = vtk.vtkPolyDataMapper()
edge_Mapper.SetInputData( bpc_Filter.GetContourEdgesOutput() )
edge_Actor = vtk.vtkActor()
edge_Actor.SetMapper(edge_Mapper)
self.renderer.AddActor(edge_Actor)
edge_Actor.GetProperty().SetColor(0, 0, 0)