VTK--交互方式vtkInteractorStyleTrackballCamera

news2024/9/24 17:08:56

前言:本博文主要介绍vtk中基于Camera的交互方式vtkInteractorStyleTrackballCamera 及其子类,小伙伴可以根据需求自定义交互方式。

目录

vtkInteractorStyleTrackballCamera 

vtkGeoInteractorStyle

vtkInteractorStyleImage

vtkInteractorStyleMultiTouchCamera

vtkInteractorStyleRubberBand3D

vtkInteractorStyleRubberBandPick


vtkInteractorStyleTrackballCamera 

位置:../Interaction/Style

描述:vtkInteractorStyleTrackballCamera允许用户交互操作(旋转,平移等)相机,场景的视点。在轨迹球交互中,鼠标运动的幅度与与特定鼠标绑定相关的摄像机运动成比例。例如,小的左键运动会引起相机围绕焦点旋转的小变化。对于3键鼠标,左键用于旋转右键用于缩放中间键用于平移ctrl +左键用于旋转shift +右键用于环境旋转。(鼠标按键更少,ctrl + shift +左键用于缩放,shift +左键用于平移。)

注意:在该类及其子类中,Actors并没有发生移动,而是Camera移动。

vtkGeoInteractorStyle

描述:vtkInteractorStyleTrackballCamera子类,包含地理视图的交互功能,包括轨道、缩放和倾斜。它还包括一个罗盘小部件,用于更改视图参数。在9.0.3中不存在该类。

vtkInteractorStyleImage

描述:vtkInteractorStyleTrackballCamera子类,专门设计用于使用vtkImageActor渲染的图像。几个事件从它的超类vtkinteractstyle重载,因此鼠标绑定是不同的。(绑定使相机的视图平面垂直于x-y平面。)综上所述,二维图像交互的鼠标事件如下:

-鼠标左键触发窗口级事件

- CTRL鼠标左键旋转相机周围的视野平面正常

-鼠标左键SHIFT平移相机

- CTRL SHIFT鼠标左键多利(位置缩放)相机

-鼠标中键平移相机

-鼠标右键拖动相机。

- SHIFT鼠标右键触发选择事件

如果SetInteractionModeToImageSlicing()被调用,那么一些鼠标事件被改变如下:

- CTRL鼠标左键切片图像

- SHIFT中鼠标切片图像

- CTRL鼠标右键旋转相机

如果SetInteractionModeToImage3D()被调用,那么一些鼠标事件被改变如下:

-鼠标左键SHIFT旋转摄像机进行倾斜切片

- SHIFT中鼠标切片图像

- CTRL右键鼠标也切片图像

在所有模式下,以下按键绑定生效:

- R重置窗口/级别

- X重置为矢状视图

- Y重置为冠状视图

- Z复位为轴向视图

vtkInteractorStyleMultiTouchCamera

描述:采用多点触摸,不太理解。

vtkInteractorStyleRubberBand3D

描述:vtkInteractorStyleRubberBand3D在3D视图中管理交互。该样式还允许使用左键绘制橡皮筋。当按下按钮时,所有的相机变化都会调用StartInteractionEvent,当鼠标(或滚轮)移动时调用InteractionEvent,当按钮释放时调用EndInteractionEvent。绑定如下:

鼠标左键-选择(调用SelectionChangedEvent)。

鼠标右键-旋转。

Shift +鼠标右键-缩放。

鼠标中间-移动

滚轮-缩放。

vtkInteractorStyleRubberBandPick

描述:与父类功能相似,但该类可以选择矩形框。当用户点击“r”时,使用左键会绘制矩形。当释放左键时,Pick点为矩形的中心点。若对应的Picker为vtkAreaPicker时,则会作用于整个选择的矩形框。当用户点击“p"时,上述操作会作用于一个1X1的矩形。

vtkParallelCoordinatesInteractorStyle

描述:交互式操作的相机专门用于平行坐标

vtkParallelCoordinatesInteractorStyle使相机的视角平面垂直于x-y平面。总的来说,鼠标事件如下:

+鼠标左键触发窗口级事件

+ CTRL鼠标左键旋转相机围绕其视图平面正常

+ SHIFT鼠标左键平移相机

+ CTRL SHIFT鼠标左键多利(位置缩放)相机

+鼠标中键平移相机

+鼠标右键拖动相机。

+ SHIFT鼠标右键触发选择事件

另附 常用的交互方式

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

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

相关文章

LeetCode刷题复盘笔记—一文搞懂动态规划之152. 乘积最大子数组问题(动态规划系列第三十六篇)

今日主要总结一下动态规划的一道题目,152. 乘积最大子数组 题目:152. 乘积最大子数组 Leetcode题目地址 题目描述: 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字&…

怎样学习线性代数?

最近在看《线性代数的几何意义》这本书,刚好也借用书里的总结,分享一下。 (注:本文是一篇我国代数名家丘维声教授在电大讲授线性代数课程时关于如何学好线性代数的综合论述,超牛!) 初学线性代数…

社区10款年度优秀插件框架盘点!

Cocos 社区年度插件框架 TOP 10以下游戏资源排名不分先后,Cocos Store & Cocos微店 年终元旦限时优惠进行中......作者:Chuan——张川介绍:一款节点树实时预览插件,支持 Cocos Creator 2.x\3.x 引擎版本,除节点预览…

云信小课堂 | 如何管理音视频的通话状态?

2022.12业务背景 用户在实际使用云信音视频通话 2.0 服务中,常常会遇到弱网,掉线等情况,对于这类情况,云信 SDK 提供了自动重连的相关策略,业务层不需要单独处理重连,只需要监听并做好相应的 UI 逻辑。所以…

【OpenCV】使用 Python 的铅笔素描图像

目录:使用 Python 的铅笔素描图像一、前言二、代码实战2.1 导包2.2 读取照片2.3 使用 OpenCV 显示图像2.4 灰度图像2.5 反转图像2.6 模糊图像2.7 减淡和融合三、结果展示五、源代码一、前言 图片在 Python 中表示为一组数字。所以我们可以进行各种矩阵操作来得到令…

跨域问题(三种解决方法)

跨域就是一个域名的网页去请求另一个域名的资源,比如你刚刚在A网站输入了自己的账号密码,然后访问B网站,B网站无法获取账号密码 两个请求的协议(比如http),域名(比如说localhost或者192.168.0.…

python 时间

目录标题python的时间模块1、时间戳2、时间元组3、获取格式化的时间可以自定义输出格式日期格式化的符号4、显示某月的日历5、sleep模块python的时间模块 1、时间戳 时间戳,以1970为时间基准,但是太过于遥远的时间就不可以了,windows最源支持…

基于springboot实验室管理系统(程序+数据库)

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

C进阶:征服指针之指针笔试题强化(3)

目录 ​​​​​​​ 🐲T1. ​​​​​​​ ​​​​​​​ 🤖 T2. ​​​​​​​ ​​​​​​​ 🐬 T3. ​​​​​​​ ​​​​​​​ 🐳 T4. ​​​​​​​ ​​​…

并发编程——5.共享模型之无锁

目录5.共享模型之无锁5.1.问题提出5.1.1.案例5.1.2.解决思路——锁5.1.3.解决思路——无锁5.2.CAS 与 volatile5.2.1.CAS5.2.2.volatile5.2.3.为什么无锁效率高5.2.4.CAS 的特点5.3.原子整数5.4.原子引用5.4.1.概述5.4.2.案例5.4.3.ABA 问题及解决5.5.原子数组5.6.字段更新器5.…

数位统计DP

目录 算法简介 算法讲解 数字计数 数位统计DP的递推实现 数位统计DP的记忆化搜索实现 算法实践 一 Windy数 二 手机号码 附录: 算法简介 数位统计 DP 用于数字的数位统计,是一种比较简单的 DP 套路题。 一个数字的数位有个位、十位、百位,等等,如果题目和…

Python3入门基础(03)数据结构

Python3 数据结构 Python3 中有四种标准的数据结构: List(列表)Tuple(元组)Set(集合)Dictionary(字典) Python 3 的六个标准数据类型中: 不可变数据&…

MATLAB算法实战应用案例精讲-【人工智能】语义分割

前言 语义分割是一种典型的计算机视觉问题,其涉及将一些原始数据(例如,平面图像)作为输入并将它们转换为具有突出显示的感兴趣区域的掩模。许多人使用术语全像素语义分割(full-pixel semantic segmentation),其中图像中的每个像素根据其所属的感兴趣对象被分配类别ID。…

跟领导提离职了,现在后悔,想留下来,怎么办?

提完离职后悔了,怎么办?是坚持不变,继续离开?还是厚着脸皮留下来?有些网友支持楼主留下,让他舔回去。有人说,等领导挽留,哪怕是做个样子,就同意留下来,如果完…

第9章 前端调用POST-Api注意事项

1 “ has been blocked by CORS policy: Response to preflight request doesnt pass access control check: It does not have HTTP ok status.”。异常 1.1 通过跨域策略解决 1.1.1 在appsettings.json文件中定义跨域策略配置 // 跨域(Cors)配置的域名及其端口集&#xff0…

央视春晚彩排的关键时刻,主持人朱军终于回归了

盼望着、盼望着,春节临近了,春晚的零点钟声即将开始敲响了。一年一度的央视春晚,已经开启了第一次彩排,众多明星都参与其中,看来今年的春晚要热闹了。 虽然只是第一次彩排,但是很多明星艺人都已经亮相&…

Colyseus:轻量级多人游戏免费开源解决方案

点击上方“青年码农”关注回复“源码”可获取各种资料Colyseus 是一个独特的多人游戏框架,被用于许多 H5 小游戏和手机游戏中,使用容易,且选项众多,可满足开发者多样化的需求。如果你在制作多人联网游戏时遇到过各种扩展性需求和细…

数据卷(Data Volumes)

目录 1.Docker宿主机和容器之间文件拷贝 利用MySQL镜像安装MySQL服务 从容器中拷贝文件到宿主机 从宿主机拷贝文件到容器 2.数据卷 3.数据卷容器 1.Docker宿主机和容器之间文件拷贝 利用MySQL镜像安装MySQL服务 docker run -p 3307:3306 --name mysql2 -di -v /home/…

Qt中用thrift验证flume

一.flume简介 flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。 在flume中分为了3个组件,分别为source,channel和sink。 Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种…

在阿里做了7年软件测试原来是........

你了解软件测试岗吗? 很多人做测试3,5年,甚至年限多长。 但并不懂软件测试岗所要求的技术和能力,只是拘于当前的工作环境和培训班的宣传。 在一个微信里中看到如下的对话: 某人说,工作中开始做自动化了。…