HardwareSelector 单元网格面鼠标选择

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①vtkHardwareSelector网格面的UI交互选择


二:代码及注释

import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkFiltersSources import vtkSphereSource from vtkmodules.vtkCommonDataModel import vtkDataObject from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera from vtkmodules.vtkRenderingCore import ( vtkActor, vtkHardwareSelector, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) from vtkmodules.util.numpy_support import vtk_to_numpy ren1 = vtkRenderer() def main(): colors = vtkNamedColors() sphere = vtkSphereSource() sphere.SetCenter(0, 0, 0) sphere.SetRadius(5.0) sphere.SetThetaResolution(32) sphere.SetPhiResolution(32) mapper = vtkPolyDataMapper() mapper.SetInputConnection(sphere.GetOutputPort()) actor = vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(colors.GetColor3d('Bisque')) ren1.AddActor(actor) ren1.GetActiveCamera().ParallelProjectionOn() ren1.SetBackground(colors.GetColor3d('Navy')) renWin = vtkRenderWindow() renWin.AddRenderer(ren1) renWin.SetSize(400, 400) renWin.SetWindowName('Hardware Selector Example') iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) style = vtkInteractorStyleTrackballCamera() iren.SetInteractorStyle(style) iren.AddObserver("LeftButtonPressEvent", selectionCallback) ren1.ResetCamera() renWin.Render() iren.Initialize() iren.Start() def selectionCallback(caller, ev): click_pos = caller.GetEventPosition() # 获取鼠标在二维渲染平面的坐标 x, y = click_pos print(f"Mouse clicked at: {x}, {y}") """ vtkHardwareSelector 是一个利用 GPU(硬件渲染管线)来快速确定“屏幕上哪个对象被选中”的类 它用显卡的渲染结果来“反查”哪个几何体(actor、cell 或 point)在某个屏幕像素位置。 """ hsel = vtkHardwareSelector() hsel.SetRenderer(ren1) hsel.SetFieldAssociation(vtkDataObject.FIELD_ASSOCIATION_CELLS) # 区域内所有单元 # vtkDataObject.FIELD_ASSOCIATION_POINTS 区域内所有顶点 # vtkDataObject.FIELD_ASSOCIATION_NONE 区域内的所有对象(整几何体) hsel.SetArea(x-2, y-2, x+2, y+2) ren1.GetRenderWindow().Render() res = hsel.Select() if res is None or res.GetNumberOfNodes() < 1: print("No visible cells selected.") return sel_node = res.GetNode(0) """ 在 VTK 中,如果你想做 对象选择(Picking / Selection),通常会用: vtkSelection:表示整个选择结果,可能包含多个节点(Node) vtkSelectionNode:表示一个选择节点,包含具体的选择类型、IDs 等信息 """ sel_list = sel_node.GetSelectionList() if sel_list is None or sel_list.GetNumberOfTuples() == 0: print("Selection list empty.") return ids = vtk_to_numpy(sel_list) print("Visible cell IDs:", ids.tolist()) if __name__ == '__main__': main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1146912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ResNet18实战教程:工业缺陷检测系统搭建指南

ResNet18实战教程&#xff1a;工业缺陷检测系统搭建指南 1. 引言&#xff1a;从通用识别到工业场景的迁移价值 1.1 通用物体识别为何能用于工业缺陷检测&#xff1f; 在智能制造与自动化质检领域&#xff0c;传统机器视觉依赖规则化图像处理&#xff08;如边缘检测、模板匹配…

ResNet18部署教程:集成WebUI的完整步骤

ResNet18部署教程&#xff1a;集成WebUI的完整步骤 1. 章节概述 随着深度学习在计算机视觉领域的广泛应用&#xff0c;图像分类已成为许多AI应用的基础能力。ResNet系列模型因其出色的性能和稳定性&#xff0c;被广泛用于实际工程中。其中&#xff0c;ResNet-18 作为轻量级代…

ResNet18应用指南:智能家居安防系统

ResNet18应用指南&#xff1a;智能家居安防系统 1. 引言&#xff1a;通用物体识别在智能安防中的核心价值 随着智能家居的普及&#xff0c;传统安防系统已无法满足用户对“理解场景”而非仅仅“记录画面”的需求。普通摄像头只能被动录像&#xff0c;而AI驱动的智能安防需要具…

CreateBFont 2D图像的高斯平滑并转化为3D几何体

一&#xff1a;主要的知识点 1、说明 本文只是教程内容的一小段&#xff0c;因博客字数限制&#xff0c;故进行拆分。主教程链接&#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkImageDataGeometryFilter结构化图像数…

ResNet18实战案例:工业机器人视觉

ResNet18实战案例&#xff1a;工业机器人视觉 1. 引言&#xff1a;通用物体识别在工业场景中的价值 随着智能制造和自动化产线的快速发展&#xff0c;工业机器人正从“机械执行”向“智能感知”演进。其中&#xff0c;视觉识别能力成为提升机器人环境理解与自主决策的关键技术…

ResNet18实战教程:工业缺陷检测系统

ResNet18实战教程&#xff1a;工业缺陷检测系统 1. 引言 1.1 学习目标 本文将带你从零开始&#xff0c;构建一个基于 ResNet-18 的工业级图像分类系统&#xff0c;并将其应用于通用物体识别与场景理解。通过本教程&#xff0c;你将掌握&#xff1a; 如何使用 TorchVision 加…

ResNet18实战:构建高精度图像分类服务

ResNet18实战&#xff1a;构建高精度图像分类服务 1. 引言&#xff1a;通用物体识别中的ResNet-18价值 在计算机视觉领域&#xff0c;通用物体识别是智能系统理解现实世界的基础能力。从自动驾驶感知环境&#xff0c;到智能家居识别用户行为&#xff0c;再到内容平台自动打标…

ResNet18部署详解:Serverless架构图像识别

ResNet18部署详解&#xff1a;Serverless架构图像识别 1. 背景与技术选型 1.1 通用物体识别的工程挑战 在当前AI应用快速落地的背景下&#xff0c;通用物体识别已成为智能服务的基础能力之一。无论是内容审核、智能相册管理&#xff0c;还是AR/VR场景理解&#xff0c;都需要…

ResNet18优化实战:推理吞吐量提升

ResNet18优化实战&#xff1a;推理吞吐量提升 1. 背景与挑战&#xff1a;通用物体识别中的性能瓶颈 在AI应用落地过程中&#xff0c;模型的稳定性和推理效率是决定用户体验的核心因素。基于TorchVision官方实现的ResNet-18模型因其轻量、稳定、泛化能力强&#xff0c;广泛应用…

Multisim14使用教程:傅里叶分析功能操作指南

Multisim14实战指南&#xff1a;手把手教你用傅里叶分析“看穿”信号本质你有没有遇到过这样的情况&#xff1f;电路明明照着图纸搭的&#xff0c;输入是正弦波&#xff0c;示波器一测输出却“毛毛躁躁”&#xff0c;声音发闷、电源噪声大、通信误码率高……问题出在哪&#xf…

ResNet18代码详解:从模型加载到推理全流程

ResNet18代码详解&#xff1a;从模型加载到推理全流程 1. 背景与技术选型 1.1 通用物体识别的挑战与需求 在计算机视觉领域&#xff0c;通用物体识别是基础且关键的任务之一。面对海量图像数据&#xff0c;系统需要快速、准确地判断图像内容所属类别——无论是动物、交通工具…

CubeAxesActor 为几何体添加边框和坐标轴

一&#xff1a;主要的知识点 1、说明 本文只是教程内容的一小段&#xff0c;因博客字数限制&#xff0c;故进行拆分。主教程链接&#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkCubeAxesActor立方体坐标轴 二&#x…

MOSFET基本工作原理图解:开关状态转换详解

深入理解MOSFET&#xff1a;从结构到开关行为的完整图解指南你有没有遇到过这样的情况——明明代码写对了&#xff0c;驱动信号也输出了&#xff0c;可电机就是启动不了&#xff1f;或者电源效率上不去&#xff0c;发热严重&#xff0c;排查半天发现是MOSFET在“捣鬼”&#xf…

ResNet18实战指南:构建智能农业监测系统

ResNet18实战指南&#xff1a;构建智能农业监测系统 1. 引言&#xff1a;通用物体识别在智能农业中的价值 随着人工智能技术的普及&#xff0c;通用物体识别正成为智能农业系统的核心能力之一。从田间作物生长状态监测、病虫害识别&#xff0c;到农机设备自动巡检、牲畜行为分…

ResNet18部署案例:教育场景应用开发指南

ResNet18部署案例&#xff1a;教育场景应用开发指南 1. 引言&#xff1a;通用物体识别在教育中的价值 随着人工智能技术的普及&#xff0c;通用物体识别正逐步融入教育信息化体系。从智能教学辅助到校园安全监控&#xff0c;再到学生行为分析与实验数据自动标注&#xff0c;图…

USB_Burning_Tool批量模式下固件一致性保障方案

如何让 USB_Burning_Tool 在批量烧录中“零出错”&#xff1f;一套工业级固件一致性保障实战方案你有没有遇到过这样的场景&#xff1a;产线正在批量烧录设备&#xff0c;几十台机器同时连接&#xff0c;进度条飞快推进——结果几小时后抽检发现&#xff0c;有几台设备烧的是旧…

ResNet18实战:5分钟搭建高精度图像分类系统

ResNet18实战&#xff1a;5分钟搭建高精度图像分类系统 1. 引言&#xff1a;通用物体识别的工程价值 在计算机视觉领域&#xff0c;通用物体识别是构建智能系统的基石能力之一。无论是内容审核、智能相册管理&#xff0c;还是增强现实&#xff08;AR&#xff09;场景理解&…

DisplacementPlot 结构动态可视化

一&#xff1a;主要的知识点 1、说明 本文只是教程内容的一小段&#xff0c;因博客字数限制&#xff0c;故进行拆分。主教程链接&#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkWarpVector 根据向量场对几何体进行形…