屯昌县网站建设_网站建设公司_定制开发_seo优化
2025/12/31 10:53:00 网站建设 项目流程

一:主要的知识点

1、说明

本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客

2、知识点纪要

本段代码主要涉及的有①通过交互选择actor并高亮显示


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkRenderingCore import vtkActor, vtkRenderer, vtkRenderWindow, vtkRenderWindowInteractor, vtkPolyDataMapper from vtkmodules.vtkFiltersSources import vtkArrowSource from vtkmodules.vtkRenderingOpenGL2 import vtkOutlineGlowPass, vtkRenderStepsPass def main(): colors = vtkNamedColors() iren = vtkRenderWindowInteractor() renWin = vtkRenderWindow() renWin.SetMultiSamples(0) iren.SetRenderWindow(renWin) renderer = vtkRenderer() rendererOutline = vtkRenderer() rendererOutline.SetLayer(1) renWin.SetNumberOfLayers(2) renWin.AddRenderer(rendererOutline) renWin.AddRenderer(renderer) arrowSource = vtkArrowSource() arrowSource.Update() coneMapperMain = vtkPolyDataMapper() coneMapperMain.SetInputConnection(arrowSource.GetOutputPort()) coneActorMain = vtkActor() coneActorMain.SetMapper(coneMapperMain) coneActorMain.GetProperty().SetDiffuseColor(colors.GetColor3d("LimeGreen")) renderer.AddActor(coneActorMain) basecPasses = vtkRenderStepsPass() """ vtkOutlineGlowPass是一个后期渲染通道(vtkRenderPass 的子类), 用来在渲染场景的基础上添加 轮廓高亮发光效果 """ glowPass = vtkOutlineGlowPass() glowPass.SetDelegatePass(basecPasses) rendererOutline.SetPass(glowPass) coneMapperOutline = vtkPolyDataMapper() coneMapperOutline.SetInputConnection(arrowSource.GetOutputPort()) coneActorOutline = vtkActor() coneActorOutline.SetMapper(coneMapperOutline) coneActorOutline.GetProperty().SetColor(colors.GetColor3d("Magenta")) coneActorOutline.GetProperty().LightingOff() rendererOutline.AddActor(coneActorOutline) renWin.SetSize(600, 600) renderer.GradientBackgroundOn() renderer.SetBackground(colors.GetColor3d("DarkSlateGray")) renderer.SetBackground2(colors.GetColor3d("DarkSlateBlue")) renderer.ResetCamera() camera = renderer.GetActiveCamera() camera.Roll(45.0) camera.Azimuth(-30.0) camera.Elevation(-15.0) renderer.ResetCamera() # Now set the active camera for the outline rendererOutline.SetActiveCamera(camera) renWin.SetWindowName('OutlineGlowPass') renWin.Render() iren.Start() if __name__ == '__main__': main()

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询