Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么在添加vtkBandedPolyDataContourFilter时多边形曲面的颜色显示不均匀?_Python_Vtk - Fatal编程技术网

Python 为什么在添加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

你好 当我添加vtkBandedPolyDataContourFilter实例以显示多边形的轮廓时, 多边形表面的颜色显示不均匀,如上图所示

如何在表面上均匀显示颜色

我显示了代码的重要部分

谢谢

        # 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)