2026/1/25 0:01:20
网站建设
项目流程
酒店网站建设价格,四川建设网四川住建厅,wordpress菜单分级,源码网站代理一#xff1a;主要的知识点
1、说明
本文只是教程内容的一小段#xff0c;因博客字数限制#xff0c;故进行拆分。主教程链接#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客
2、知识点纪要
本段代码主要涉及的有①模型下采样 二#xff1a;代码及注释
i…一主要的知识点1、说明本文只是教程内容的一小段因博客字数限制故进行拆分。主教程链接vtk教程——逐行解析官网所有Python示例-CSDN博客2、知识点纪要本段代码主要涉及的有①模型下采样二代码及注释import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkIOXML import vtkXMLPolyDataReader from vtkmodules.vtkFiltersCore import vtkDecimatePro from vtkmodules.vtkCommonDataModel import vtkPolyData from vtkmodules.vtkRenderingCore import vtkPolyDataMapper, vtkProperty, vtkActor, vtkRenderer, vtkRenderWindow, \ vtkRenderWindowInteractor, vtkCamera def main(): filePath Data/Torso.vtp reduction 0.9 colors vtkNamedColors() backFaceColor colors.GetColor3d(Gold) inputActorColor colors.GetColor3d(NavajoWhite) decimatedActorColor colors.GetColor3d(NavajoWhite) reader vtkXMLPolyDataReader() reader.SetFileName(filePath) reader.Update() inputPolyData reader.GetOutput() vtkDecimatePro 通过去除冗余的或不重要的三角形和顶点将一个高分辨率的模型转换为一个低分辨率的模型 decimate vtkDecimatePro() decimate.SetInputData(inputPolyData) decimate.SetTargetReduction(reduction) decimate.PreserveTopologyOn() # 保存原先的拓扑结构,不破坏洞或边界 decimate.Update() decimated vtkPolyData() decimated.ShallowCopy(decimate.GetOutput()) inputMapper vtkPolyDataMapper() inputMapper.SetInputData(inputPolyData) backFace vtkProperty() backFace.SetColor(backFaceColor) inputActor vtkActor() inputActor.SetMapper(inputMapper) inputActor.GetProperty().SetInterpolationToFlat() inputActor.GetProperty().SetColor(inputActorColor) inputActor.SetBackfaceProperty(backFace) decimatedMapper vtkPolyDataMapper() decimatedMapper.SetInputData(decimated) decimatedActor vtkActor() decimatedActor.SetMapper(decimatedMapper) decimatedActor.GetProperty().SetColor(decimatedActorColor) decimatedActor.GetProperty().SetInterpolationToFlat() decimatedActor.SetBackfaceProperty(backFace) renderWindow vtkRenderWindow() renderWindow.SetSize(600, 300) renderWindow.SetWindowName(Decimation); # And one interactor interactor vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) leftViewport [0.0, 0.0, 0.5, 1.0] rightViewport [0.5, 0.0, 1.0, 1.0] leftRenderer vtkRenderer() renderWindow.AddRenderer(leftRenderer) leftRenderer.SetViewport(leftViewport) # leftRenderer.SetBackground((colors.GetColor3d(leftBkg))) leftRenderer.SetBackground((colors.GetColor3d(Peru))) rightRenderer vtkRenderer() renderWindow.AddRenderer(rightRenderer) rightRenderer.SetViewport(rightViewport) # rightRenderer.SetBackground((colors.GetColor3d(rightBkg))) rightRenderer.SetBackground((colors.GetColor3d(CornflowerBlue))) # Add the sphere to the left and the cube to the right leftRenderer.AddActor(inputActor) rightRenderer.AddActor(decimatedActor) # Shared camera # Shared camera looking down the -y axis camera vtkCamera() camera.SetPosition(0, -1, 0) camera.SetFocalPoint(0, 0, 0) camera.SetViewUp(0, 0, 1) camera.Elevation(30) camera.Azimuth(30) leftRenderer.SetActiveCamera(camera) rightRenderer.SetActiveCamera(camera) leftRenderer.ResetCamera() leftRenderer.ResetCameraClippingRange() renderWindow.Render() renderWindow.SetWindowName(Decimation) interactor.Start() if __name__ __main__: main()