企业公司网站开发,有没有好用的网址,深圳电器公司排名,专业旅游网站开发系统一#xff1a;主要的知识点
1、说明
本文只是教程内容的一小段#xff0c;因博客字数限制#xff0c;故进行拆分。主教程链接#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客
2、知识点纪要
本段代码主要涉及的有①标量的颜色映射 二#xff1a;代码及注释…一主要的知识点1、说明本文只是教程内容的一小段因博客字数限制故进行拆分。主教程链接vtk教程——逐行解析官网所有Python示例-CSDN博客2、知识点纪要本段代码主要涉及的有①标量的颜色映射二代码及注释import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonCore import vtkLookupTable, vtkMinimalStandardRandomSequence, vtkPoints,vtkUnsignedCharArray from vtkmodules.vtkCommonDataModel import vtkPolyData from vtkmodules.vtkFiltersCore import vtkDelaunay2D from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): named_colors vtkNamedColors() points vtkPoints() xx, yy, zz 0.0, 0.0, 0.0 GridSize 20 rng vtkMinimalStandardRandomSequence() rng.SetSeed(8775586) for x in range(0, GridSize): for y in range(0, GridSize): rng.Next() xx x rng.GetRangeValue(-0.2, 0.2) rng.Next() yy y rng.GetRangeValue(-0.2, 0.2) rng.Next() zz rng.GetRangeValue(-0.5, 0.5) points.InsertNextPoint(xx, yy, zz) inputPolyData vtkPolyData() inputPolyData.SetPoints(points) # Delaunay2D delaunay vtkDelaunay2D() delaunay.SetInputData(inputPolyData) delaunay.Update() outputPolyData delaunay.GetOutput() # 获取其包围盒 bounds [0.0] * 6 outputPolyData.GetBounds(bounds) # 得到z值的范围 minz bounds[4] maxz bounds[5] # 构建颜色映射表 colorLookupTable vtkLookupTable() colorLookupTable.SetTableRange(minz, maxz) colorLookupTable.Build() # 遍历点并应用颜色 colors vtkUnsignedCharArray() colors.SetNumberOfComponents(3) colors.SetName(Colors) for i in range(0, outputPolyData.GetNumberOfPoints()): p [0.0] * 3 outputPolyData.GetPoint(i, p) dcolor [0.0] * 3 colorLookupTable.GetColor(p[2], dcolor) # 利用当前点的z值得到其对应的rgb颜色 color [0] * 3 for j in range(0, 3): color[j] int(255 * dcolor[j]) colors.InsertNextTuple3(color[0], color[1], color[2]) outputPolyData.GetPointData().SetScalars(colors) # Create a mapper and actor mapper vtkPolyDataMapper() mapper.SetInputData(outputPolyData) 由于已经用 outputPolyData.GetPointData().SetScalars(colors) 将颜色数组设置在了默认的 Scalars 槽位Mapper 应该能够自动找到并使用它 actor vtkActor() actor.SetMapper(mapper) # Create a renderer, render window, and interactor renderer vtkRenderer() renderWindow vtkRenderWindow() renderWindow.AddRenderer(renderer) renderWindow.SetWindowName(ColoredElevationMap) renderWindowInteractor vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) # Add the actor to the scene renderer.AddActor(actor) renderer.SetBackground(named_colors.GetColor3d(DarkSlateGray)) # Render and interact renderWindow.Render() renderWindowInteractor.Start() if __name__ __main__: main()