VTK Python PyQt 监听键盘 控制 Actor 移动 变色

KeyPressInteractorStyle
在vtk 中有时我们需要监听 键盘或鼠标做一些事;
1. 创建 Actor;
Sphere = vtk.vtkSphereSource()
Sphere.SetRadius(10)mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(Sphere.GetOutputPort())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
actor.GetProperty().SetColor(0.0, 1.0, 0.0)
2.创建 vtkRenderer vtkRenderWindow vtkRenderWindowInteractor
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
3.重写交互器 Style
class KeyPressInteractorStyle(vtk.vtkInteractorStyleTrackballCamera):def __init__(self, parent=None):self.parent = vtk.vtkRenderWindowInteractor()if (parent is not None):self.parent = parentself.AddObserver("KeyReleaseEvent", self.keyRelease)def keyRelease(self, obj, event):key = self.parent.GetKeySym()if key == 'Up':pt = actor.GetPosition()actor.SetPosition(pt[0],pt[1]+5,pt[2])elif key == 'Down':pt = actor.GetPosition()actor.SetPosition(pt[0],pt[1]-5,pt[2])if key == 'Left':pt = actor.GetPosition()actor.SetPosition(pt[0]-5,pt[1],pt[2])elif key == 'Right':pt = actor.GetPosition()actor.SetPosition(pt[0]+5,pt[1],pt[2])elif key== 'c':# 产生随机颜色r = vtk.vtkMath.Random()g = vtk.vtkMath.Random()b = vtk.vtkMath.Random()actor.GetProperty().SetColor(r, g, b)renWin.Render()
4.添加交互器:
iren.SetInteractorStyle(KeyPressInteractorStyle(parent=iren))ren.AddActor(actor)
相关文章:
VTK Python PyQt 监听键盘 控制 Actor 移动 变色
KeyPressInteractorStyle 在vtk 中有时我们需要监听 键盘或鼠标做一些事; 1. 创建 Actor; Sphere vtk.vtkSphereSource() Sphere.SetRadius(10)mapper vtk.vtkPolyDataMapper() mapper.SetInputConnection(Sphere.GetOutputPort()) actor vtk.vtkAc…...
力扣 第 124 场双周赛 解题报告 | 珂学家 | 非常规区间合并
前言 整体评价 T4的dp解法没想到,走了一条"不归路", 这个区间合并解很特殊,它是带状态的,而且最终的正解也是基于WA的case,慢慢理清的。 真心不容易,太难了。 T1. 相同分数的最大操作数目 I 思路: 模拟 c…...
2024年华为OD机试真题-生成哈夫曼树-Java-OD统一考试(C卷)
题目描述: 给定长度为n的无序的数字数组,每个数字代表二叉树的叶子节点的权值,数字数组的值均大于等于1。请完成一个函数,根据输入的数字数组,生成哈夫曼树,并将哈夫曼树按照中序遍历输出。 为了保证输出的二叉树中序遍历结果统一,增加以下限制:二叉树节点中,左节点权…...
【实战】二、Jest难点进阶(二) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(六)
文章目录 一、Jest 前端自动化测试框架基础入门二、Jest难点进阶2.mock 深入学习 学习内容来源:Jest入门到TDD/BDD双实战_前端要学的测试课 相对原教程,我在学习开始时(2023.08)采用的是当前最新版本: 项版本babel/co…...
(一)【Jmeter】JDK及Jmeter的安装部署及简单配置
JDK的安装和环境变量配置 对于Linux、Mac和Windows系统,JDK的安装和环境变量配置方法略有不同。以下是针对这三种系统的详细步骤: 对于Linux系统: 下载适合Linux系统的JDK安装包,可以选择32位或64位的版本。 将JDK的安装包放置在服务器下,创建一个新的文件夹来存储JDK,…...
HAL/LL/STD STM32 U8g2库 +I2C SSD1306/sh1106 WouoUI磁贴案例
HAL/LL/STD STM32 U8g2库 I2C SSD1306/sh1106 WouoUI磁贴案例 📍基于STM32F103C8T6 LL库驱动版本:https://gitee.com/chcsx/platform-test/tree/master/MDK-ARM🎬视频演示: WouoUI移植磁贴案例,新增确认弹窗 …...
手机如何改自己的ip地址
在现如今的数码时代,手机已经成为人们生活中不可或缺的一部分。然而,有时候我们可能需要改变手机的IP地址来实现一些特定的需求。本文将向大家介绍如何改变手机的IP地址,帮助大家更好地应对各种网络问题。 更改手机IP地址的原因:…...
ajax函数库axios基本使用
ajax函数库Axios基本使用 简介:Axios 对原生的Ajax进行了封装,简化书写,快速开发。 官网:https://www.axios-http.cn/ Axios使用步骤 引入Axios的js文件(参考官网)使用Axios发送请求,获取相应结果 <script src"https:…...
【nginx实践连载-4】彻底卸载Nginx(Ubuntu)
步骤1:停止Nginx服务 打开终端(Terminal)。停止Nginx服务:sudo systemctl stop nginx步骤2:卸载Nginx软件包 运行以下命令卸载Nginx软件包:sudo apt purge nginx nginx-common nginx-core步骤3࿱…...
究极小白如何自己搭建一个自动发卡网站-独角数卡
首页 | 十画IOSIDshihuaid.cn/编辑 如果你也是跟我一样,什么都不懂,也想要搭建一个自己的自动发卡网站,可以参考一下我的步骤,不难,主要就是细心,一步步来一定成功!! 独角数卡: 举个例子:独角数卡就是一个店面,而且里面帮你装修好了,而你要做的就是把开店之…...
Java_方法(重载方法签名等详解)
在之前我们学习C语言时,当我们想要重复使用某段代码的功能时,我们会将这段代码定义为一个函数,而在java中我们把这段重复使用的代码叫做方法。 方法的定义 类体的内容分为变量的声明和方法的定义,方法的定义包括两部分࿱…...
VQ35 评论替换和去除(char_length()和replace函数的使用)
代码 select id ,replace(comment,,,) as comment from comment_detail where char_length(comment)>3知识点 要注意替换的是中文逗号 由于题目说的是汉字长度大于3,所以这里就要使用char_length()而不是length() char_length():单位为字…...
【MySQL】学习多表查询和笛卡尔积
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-N8PeTKG6uLu4bJuM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...
RabbitMQ实现延迟消息的方式-死信队列、延迟队列和惰性队列
当一条消息因为一些原因无法被成功消费,那么这这条消息就叫做死信,如果包含死信的队列配置了dead-letter-exchange属性指定了一个交换机,队列中的死信都会投递到这个交换机内,这个交换机就叫死信交换机,死信交换机再绑…...
【运维测试】测试理论+工具总结笔记第1篇:测试理论的主要内容(已分享,附代码)
本系列文章md笔记(已分享)主要讨论测试理论测试工具相关知识。Python测试理论的主要内容,掌握软件测试的基本流程,知道软件测试的V和W模型的优缺点,掌握测试用例设计的要素,掌握等价类划分法、边界值法、因…...
【C语言】实现队列
目录 (一)队列 (二)头文件 (三) 功能实现 (1)初始化 (2) 销毁队列 (3) 入队 (4)出队 (5&a…...
【友塔笔试面试复盘】八边形取反问题
问题:一个八边形每条边都是0,现在有取反操作,选择一条边取反会同时把当前边和2个邻边取反(如果是0变为1,如果是1变为0) 现在问你怎么取反能使得八条边都变为1. 当时陷入了暴力递归漩涡,给出一个…...
GB 18585-2023 壁纸中有害物质限量
壁纸/墙布因其色彩多样,图案丰富,施工方便,价格便宜等多种优势,广泛应用于室内装修材料,在国内,日本,欧美等地区非常普及。 GB 18585-2023壁纸中有害物质限量测试项目: 测试项目 测…...
全面的ASP.NET Core Blazor简介和快速入门
前言 因为咱们的MongoDB入门到实战教程Web端准备使用Blazor来作为前端展示UI,本篇文章主要是介绍Blazor是一个怎样的Web UI框架,其优势和特点在哪?并带你快速入门上手ASP.NET Core Blazor(当然这个前提是你要有一定的C#编程基础的情况&#x…...
HGAME 2024 WEEK2 Crypto WP
前言 我很菜,有没做出来的题目,带*号题为复现。 midRSA 题目: from Crypto.Util.number import * from secret import flagdef padding(flag):return flagb\xff*(64-len(flag))flagpadding(flag) mbytes_to_long(flag) pgetPrime(512) qg…...
QuickCut视频剪辑软件:3分钟快速上手免费视频处理神器
QuickCut视频剪辑软件:3分钟快速上手免费视频处理神器 【免费下载链接】QuickCut Your most handy video processing software 项目地址: https://gitcode.com/gh_mirrors/qu/QuickCut 还在为复杂的专业视频编辑软件头疼吗?QuickCut作为一款轻量级…...
ElevenLabs动画配音语音交付危机预警,紧急修复唇动不同步、语速断层、多语言混读错位的6大实时响应方案
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs动画配音语音交付危机的本质溯源 当动画制作团队依赖 ElevenLabs API 实时生成角色语音时,突然出现的 429 Too Many Requests 响应、TTS 音频静音片段、以及语音情感断层现象&…...
如何通过Xiaomusic开源项目解锁小爱音箱的完整音乐播放功能
如何通过Xiaomusic开源项目解锁小爱音箱的完整音乐播放功能 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic Xiaomusic是一款开源智能音乐播放器,专为小米…...
Windows微信QQ防撤回终极指南:RevokeMsgPatcher完整使用教程
Windows微信QQ防撤回终极指南:RevokeMsgPatcher完整使用教程 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitc…...
Python封装币安API:从零构建Binance-Claw量化数据工具
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“Binance-Claw”,作者是Scandalousnessmotley216。光看这个名字,可能有点摸不着头脑,“Claw”是爪子的意思,难道是要“抓取”币安的数据?点…...
汇顶科技入围GSA奖项:中国芯片设计公司的战略聚焦与成长路径分析
1. 项目概述:一次里程碑式的行业认可最近在半导体圈子里,一个消息引起了不小的波澜:汇顶科技成功入围了全球半导体联盟(GSA)2019年度的两大奖项提名。对于不熟悉这个领域的朋友来说,这或许只是一个普通的公…...
TencentDB Agent Memory 架构拆解:告别 Agent 失忆,构建四层可追溯记忆与上下文治理系统
拆解 TencentDB Agent Memory 如何用分层记忆、上下文卸载和降级检索,让 Agent 留住工作现场。 原文链接:AI 小老六 Agent 真正难用的地方,往往不是它不会调用工具,而是它记不住工作现场。 你刚给它讲完项目背景、编码偏好、部署…...
终极窗口分辨率自定义指南:SRWE如何突破显示限制
终极窗口分辨率自定义指南:SRWE如何突破显示限制 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 在数字创作和游戏体验的领域中,窗口分辨率自定义工具SRWE(Simple Runtime Wi…...
对比直接使用厂商API,Taotoken在账单清晰度上的优势
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商API,Taotoken在账单清晰度上的优势 在集成多个大语言模型到业务中时,开发者或团队通常会面…...
Shell 相关基础入门,在 Ubuntu 与 CentOS Shell 中的语法差异总结(bash、dash、sh)
新建的test.sh文件,vim进去,每行开头都默认有一个~符号,是什么意思,而且在里面鼠标也失效了? 你问的这两个问题,恰好是初学者刚接触 vim 编辑器时最常遇到的两个困惑。它们完全正常,不是系统出错…...
