news 2026/10/26 0:24:49

HighlightPickedActor 对象的选择

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HighlightPickedActor 对象的选择

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①vtkPropPicker选取一个prop对象


二:代码及注释

import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkRenderingCore import vtkRenderer, vtkActor, vtkPolyDataMapper, vtkRenderWindow, \ vtkRenderWindowInteractor, vtkPropPicker, vtkProperty from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera from vtkmodules.vtkCommonCore import vtkMinimalStandardRandomSequence from vtkmodules.vtkFiltersSources import vtkSphereSource class MouseInteractorHighLightActor(vtkInteractorStyleTrackballCamera): def __init__(self): self.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent) self.LastPickedActor = None self.LastPickedProperty = vtkProperty() def leftButtonPressEvent(self, obj, event): colors = vtkNamedColors() clickPos = self.GetInteractor().GetEventPosition() """ vtkPropPicker 在屏幕坐标中拾取(Pick)一个 vtkProp 对象 """ picker = vtkPropPicker() picker.Pick(clickPos[0], clickPos[1], 0, self.GetDefaultRenderer()) self.NewPickedActor = picker.GetActor() if self.NewPickedActor: if self.LastPickedActor: self.LastPickedActor.GetProperty().DeepCopy(self.LastPickedProperty) self.LastPickedProperty.DeepCopy(self.NewPickedActor.GetProperty()) self.NewPickedActor.GetProperty().SetColor(colors.GetColor3d('Red')) self.NewPickedActor.GetProperty().SetDiffuse(1.0) self.NewPickedActor.GetProperty().SetSpecular(0.0) self.NewPickedActor.GetProperty().EdgeVisibilityOn() self.LastPickedActor = self.NewPickedActor self.OnLeftButtonDown() def main(): NUMBER_OF_SPHERES = 10 colors = vtkNamedColors() renderer = vtkRenderer() renderer.SetBackground(colors.GetColor3d("SteelBlue")) renwin = vtkRenderWindow() renwin.AddRenderer(renderer) renwin.SetSize(640, 480) renwin.SetWindowName('HighlightPickedActor') interactor = vtkRenderWindowInteractor() interactor.SetRenderWindow(renwin) # 自定义交互 style = MouseInteractorHighLightActor() style.SetDefaultRenderer(renderer) interactor.SetInteractorStyle(style) randomSequence = vtkMinimalStandardRandomSequence() randomSequence.SetSeed(8775070) for i in range(NUMBER_OF_SPHERES): source = vtkSphereSource() x = randomSequence.GetRangeValue(-5.0, 5.0) randomSequence.Next() y = randomSequence.GetRangeValue(-5.0, 5.0) randomSequence.Next() z = randomSequence.GetRangeValue(-5.0, 5.0) randomSequence.Next() radius = randomSequence.GetRangeValue(0.5, 1.0) randomSequence.Next() source.SetRadius(radius) source.SetCenter(x, y, z) source.SetPhiResolution(11) source.SetThetaResolution(21) mapper = vtkPolyDataMapper() mapper.SetInputConnection(source.GetOutputPort()) actor = vtkActor() actor.SetMapper(mapper) r = randomSequence.GetRangeValue(0.4, 1.0) randomSequence.Next() g = randomSequence.GetRangeValue(0.4, 1.0) randomSequence.Next() b = randomSequence.GetRangeValue(0.4, 1.0) randomSequence.Next() actor.GetProperty().SetDiffuseColor(r, g, b) actor.GetProperty().SetDiffuse(.8) actor.GetProperty().SetSpecular(.5) actor.GetProperty().SetSpecularColor(colors.GetColor3d('White')) actor.GetProperty().SetSpecularPower(30.0) renderer.AddActor(actor) interactor.Initialize() renwin.Render() interactor.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 15:35:28

Z-Image-ComfyUI性能优化:云端A100实测比本地快7倍

Z-Image-ComfyUI性能优化:云端A100实测比本地快7倍 1. 为什么选择云端A100运行ComfyUI? 作为一名长期使用Stable Diffusion系列工具的内容创作者,我最初和大多数人一样在本地RTX 3060显卡上运行ComfyUI。直到上个月测试了云端A100实例后&am…

作者头像 李华
网站建设 2026/10/25 5:46:15

零基础教程:用AI轻松制作你的第一个1024网站

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 设计一个极简版的1024导航网站模板,特别适合新手学习使用,要求:1.只有核心导航功能 2.最简化的代码结构 3.详细的步骤说明文档 4.内置示例数据。…

作者头像 李华
网站建设 2026/10/24 2:20:05

GLM-4.6V-Flash-WEB网络超时?API调用优化实战

GLM-4.6V-Flash-WEB网络超时?API调用优化实战 智谱最新开源,视觉大模型。 1. 背景与问题定位 1.1 GLM-4.6V-Flash-WEB 简介 GLM-4.6V-Flash-WEB 是智谱 AI 推出的最新开源多模态视觉大模型,支持图像理解、图文生成、视觉问答(VQ…

作者头像 李华
网站建设 2026/10/24 2:39:15

PinWin窗口置顶工具:多任务处理的高效解决方案

PinWin窗口置顶工具:多任务处理的高效解决方案 【免费下载链接】PinWin Pin any window to be always on top of the screen 项目地址: https://gitcode.com/gh_mirrors/pin/PinWin 在现代电脑使用中,多任务处理已成为常态,但频繁切换…

作者头像 李华
网站建设 2026/10/25 11:46:04

WorkshopDL完全指南:无需Steam客户端轻松获取创意工坊模组

WorkshopDL完全指南:无需Steam客户端轻松获取创意工坊模组 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 对于在非Steam平台购买游戏的玩家来说,无法访…

作者头像 李华
网站建设 2026/10/19 23:05:16

混沌工程安全检查表:构建安全故障的系统性防御体系

——面向软件测试工程师的韧性验证实战手册 一、安全故障在混沌工程中的特殊性与验证价值 1.1 安全故障的链式反应特征 相较于常规故障,安全事件具有明显的传导性(如密钥泄漏→数据泄露→合规危机)。根据Gartner 2025年安全报告,…

作者头像 李华