news 2026/6/16 14:50:31

Tutorial_Step6 vtkBoxWidget的交互与控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Tutorial_Step6 vtkBoxWidget的交互与控制

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①如何在ui界面操作一个立方体框,并控制大小


二:代码及注释

import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkFiltersSources import vtkConeSource from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera from vtkmodules.vtkInteractionWidgets import vtkBoxWidget from vtkmodules.vtkCommonTransforms import vtkTransform from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) class vtkMyCallback(object): """ Callback for the interaction. """ def __call__(self, caller, ev): t = vtkTransform() widget = caller widget.GetTransform(t) widget.GetProp3D().SetUserTransform(t) def main(): colors = vtkNamedColors() cone = vtkConeSource() cone.SetHeight(3) cone.SetRadius(1) cone.SetResolution(10) coneMapper = vtkPolyDataMapper() coneMapper.SetInputConnection(cone.GetOutputPort()) coneActor = vtkActor() coneActor.SetMapper(coneMapper) coneActor.GetProperty().SetColor(colors.GetColor3d('Bisque')) ren1 = vtkRenderer() ren1.AddActor(coneActor) ren1.SetBackground(colors.GetColor3d('MidnightBlue')) renWin = vtkRenderWindow() renWin.AddRenderer(ren1) renWin.SetSize(300, 300) renWin.SetWindowName('Tutorial_Step6') iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) style = vtkInteractorStyleTrackballCamera() iren.SetInteractorStyle(style) """ boxWidget 是一个交互式三维小部件,允许用户通过鼠标在场景中操作一个立方体框(box) """ boxWidget = vtkBoxWidget() boxWidget.SetInteractor(iren) """ SetProp3D 定义了控件操作的目标对象,建立了控件和实体之间的联系 """ boxWidget.SetProp3D(coneActor) """ SetPlaceFactor 设置放置系数或缩放因子 在 VTK 中,当调用 boxWidget.PlaceWidget() 时,控件会自动计算它所附着的对象(这里是 coneActor)的边界框(Bounding Box),并使用这个边界框来确定自身初始的大小和位置 """ boxWidget.SetPlaceFactor(1.25) boxWidget.GetOutlineProperty().SetColor(colors.GetColor3d('Gold')) boxWidget.PlaceWidget() # 初始化和确定空间在3D空间的初始位置、大小和方向 callback = vtkMyCallback() boxWidget.AddObserver('InteractionEvent', callback) boxWidget.On() # 激活交互式控件,使其在渲染窗口中可见并开始响应用户的鼠标和键盘输入 iren.Initialize() iren.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 17:22:56

AssignCellColorsFromLUT为每个单元格手动分配颜色的两种方法

一:主要的知识点 1、说明 本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①两种方法实现对网格面分配不同颜色 二&am…

作者头像 李华
网站建设 2026/6/4 20:32:10

AI一键搞定Docker安装GitLab,告别繁琐配置

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个完整的Docker安装GitLab的解决方案。要求包含:1. 基于最新版GitLab CE的docker-compose.yml配置文件 2. 必要的环境变量配置 3. 持久化存储设置 4. 端口映射…

作者头像 李华
网站建设 2026/6/15 17:53:20

Hunyuan-MT-7B-WEBUI推理界面曝光:简洁易用,支持批量翻译

Hunyuan-MT-7B-WEBUI推理界面曝光:简洁易用,支持批量翻译 在多语言内容爆炸式增长的今天,企业、教育机构乃至个人创作者都面临着一个共同难题:如何快速、准确地完成跨语言沟通?尽管大模型时代的机器翻译早已不是新鲜事…

作者头像 李华
网站建设 2026/6/10 20:19:38

Packet Tracer下载后的基础设置:小白指南

从零开始玩转网络模拟:Packet Tracer安装后必做的几件事你是不是刚搜完“packet tracer下载”,兴冲冲地装好软件,点开却发现满屏英文、图标一堆、不知道从哪下手?别慌——这几乎是每个网络新手的“入门第一课”。今天我们就抛开那…

作者头像 李华
网站建设 2026/5/30 22:03:01

预告:2026光谷AI产业发展峰会1月25日召开 助力武汉抢抓AI浪潮

雷递网 乐天 1月6日由武汉东湖新技术开发区投资促进局指导,雷递网主办的《2026光谷AI产业发展峰会》将于2026年1月25日下午2点在武汉光谷皇冠假日酒店。本次《2026光谷AI产业发展峰会》的活动主旨是诚邀对武汉感兴趣的企业家、创业者、投资人到武汉交流与发展&#…

作者头像 李华
网站建设 2026/6/10 13:59:37

MCP数据加密实施路径(从入门到高阶的完整加密体系构建)

第一章:MCP数据加密概述在现代信息安全体系中,MCP(Multi-Channel Protocol)数据加密技术作为保障多通道通信安全的核心机制,广泛应用于金融、物联网和企业级网络通信场景。该技术通过集成对称与非对称加密算法&#xf…

作者头像 李华