VTK交互器

2023-11-04

VTK交互器定义了用户了与VtkWidget界面的交互方式。结构图如下:

交互器类名 功能
vtkInteractorStyle
一个实现大部分动作的基类,对交互只有接口,没有实际功能
vtkInteractorStyle3D

允许用户交互(旋转,平移等)场景中的对象彼此独立。 它的目的是 使用3d位置和方向而不是2D。 

vtkInteractorStyleDrawPolygon 允许用户在鼠标移动时使用鼠标左键在渲染窗口中绘制多边形。 当鼠标按钮被释放时,SelectionChangedEvent将被触发。
vtkInteractorStyleFlight

提供飞行动作例程 ;

按鼠标左键产生前进动作。 按鼠标右键产生反向运动。 在移动过程中移动鼠标将引导用户向所希望的方向移动。 键盘控制:左/右/上/下箭头用于转向方向'A'向前,'Z'反向运动Ctrl键导致回避而不是转向鼠标和按键模式Shift键是鼠标和按键模式的加速器Ctrl和Shift一起导致鼠标和按键模式的滚动  

默认情况下,一个“步长”对应于可见角色包围框对角线的1/250,“+”和“-”键允许用户增加或减少步长。  

vtkInteractorStyleJoystickActor

在场景中独立操作对象  

类vtkInteractorStyleJoystickActor允许用户交互(旋转,缩放等)场景中独立的对象。 鼠标相对于物体中心的位置决定了物体的运动速度。 鼠标的速度决定了物体运动的加速度,所以即使鼠标不运动,物体也会继续运动。 对于3键鼠标,左键用于旋转,右键用于缩放,中间键用于平移,ctrl +左键用于旋转。 (用较少的鼠标按钮,ctrl + shift +左键是缩放,shift +左键是平移。)  

vtkInteractorStyleJoystickCamera

相机的交互操作

允许用户移动(旋转,平移等)摄像机,场景的视角。 鼠标相对于场景中心的位置决定了摄像机移动的速度,鼠标移动的速度决定了摄像机的加速度,所以即使鼠标没有移动,摄像机也会继续移动。 对于3键鼠标,左键用于旋转,右键用于缩放,中间键用于平移,ctrl +左键用于旋转。 (用较少的鼠标按钮,ctrl + shift +左键是缩放,shift +左键是平移。)  

vtkInteractorStyleRubberBandZoom

按皮筋盒显示的数量放大  

 这种交互样式允许用户使用鼠标左键在渲染窗口中绘制一个矩形。 当释放鼠标按钮时,当前摄像机按绘制矩形较短边的大小缩放。

vtkInteractorStyleSwitchBase

虚拟接口类。  

类vtkInteractorStyleSwitchBase在这里允许vtkRenderWindowInteractor实例化默认的交互器样式,并在重写对象工厂并返回vtkInteractorStyleSwitch时保持向后兼容的行为。  

vtkInteractorStyleTerrain

使用自然视图(如地形)操作场景中的摄像机  

vtkInteractorStyleTerrain用于操纵一个用自然视图(如地形)查看场景的摄像机。 在这样一个场景中,通过指定方位角(围绕视图向上向量的角度)和仰角(从地平线开始的角度)来操纵相机。  

这个类的鼠标绑定如下所示。 鼠标左键跟随旋转相机围绕焦点使用仰角和方位角调用相机。 鼠标在水平方向的移动导致方位角的移动; 鼠标左键在垂直方向的移动会导致上升运动。 因此,对角运动导致方位角和仰角的组合。 (如果在移动过程中按住shift键,则只调用仰角或方位角中的一个,这取决于鼠标移动主要是水平还是垂直。) 鼠标中键在场景中平移相机(同样,shift键在限制移动到垂直或水平方向上也有类似的效果。 右鼠标用于移动(例如,一种变焦)接近或远离焦点。  

这个类还支持一些按键事件。 “r”键重置相机。 “e”键调用exit回调函数,默认情况下退出程序。 “f”键设置一个新的相机焦点,并飞向那个点。 “u”键调用用户事件。 “3”键在立体声和非立体声模式之间切换。 “l”键开启/关闭一个纬度/经度标记,可以用来估计/控制位置。  

vtkInteractorStyleTrackballActor 

操作场景中的对象,彼此独立  
允许用户与场景中彼此独立的对象交互(旋转,平移等)。 在轨迹球交互中,鼠标运动的大小与与特定鼠标绑定相关的行动者的运动成正比。 例如,小的左键运动会导致actor围绕其中心点旋转的小变化。  

鼠标绑定如下所示。 对于3键鼠标,左键用于旋转,右键用于缩放,中间键用于平移,ctrl +左键用于旋转。 (用较少的鼠标按钮,ctrl + shift +左键是缩放,shift +左键是平移。)  

vtkInteractorStyleTrackballCamera

相机的交互操作  

vtkInteractorStyleTrackballCamera允许用户交互操作(旋转,平移等)摄像机,场景的视角。 在轨迹球交互中,鼠标运动的大小与与特定鼠标绑定相关的摄像机运动成正比。 例如,小的左键运动会导致相机围绕焦点旋转的小变化。 对于3键鼠标,左键用于旋转,右键用于缩放,中键用于平移,ctrl +左键用于旋转,shift +右键用于环境旋转。 (用较少的鼠标按钮,ctrl + shift +左键是缩放,shift +左键是平移。)  

vtkInteractorStyleMultiTouchCamera 

相机的多点触控操作;

vtkInteractorStyleMultiTouchCamera允许用户交互操作(旋转,平移等)相机,场景的视点使用多点触摸手势,除了常规手势 ;

vtkInteractorStyleRubberBandPick

就像TrackBallCamera,但它可以在橡皮筋选择矩形下面选择道具。  

这种交互样式允许用户通过点击“r”然后使用鼠标左键在渲染窗口中绘制一个矩形。 当释放鼠标按钮时,附加的选择器对选择矩形中心的像素进行操作。 如果选择器碰巧是vtkAreaPicker,它将对整个选择矩形进行操作。 当按下'p'键时,上面的选择操作将在1x1矩形上发生。 在其他方面,它的行为与它的父类相同。  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VTK交互器 的相关文章

  • 依靠自我

    必读网 http www beduu com 整理 依靠自我 我们需要爱默生式的思想家 当所有的编译工作都完成之后 我突然发现自己在编译过程中经常出现的 为什么要编译爱默生的文章 的疑问都变得多余了 也就是说 我突然认为 在中国重提爱默生是
  • 最小二乘法——拟合平面方程(深度相机外参标定、地面标定)

    1 最小二乘法 最小二乘法 又称最小平方法 是一种数学优化技术 它通过最小化误差的平方和寻找数据的最佳函数匹配 利用最小二乘法可以简便地求得未知的数据 并使得这些求得的数据与实际数据之间误差的平方和为最小 最小二乘法还可用于曲线拟合 其他一
  • vtk光照、颜色、相机、坐标系统及空间变换

    1 vtkLight常的方法有 SetColor 设置光照的颜色 以RGB的形式指定颜色 SetPosition 设置光照位置 SetFocalPoint 设置光照焦点 SetIntensity 设置光照的强度 SetSwitch Swit
  • vtk9.2.6编译记录

    1 cmake gui打开 搜索qt相关 将默认选项改成yes 重新configure之后 会出现新的选项 比如Qt目录 确认没有问题之后 Generate生成sln解决方案后 用vs编译 2 配置CMAKE INSTALL PREFIX
  • VTK学习之三维图像切片交互提取(回调函数、观察者-命令模式)

    参考博客 VTK Learning 三维图像切片 二 鼠标交互 回调函数 观察者 命令模式 江南又旧雨的博客 CSDN博客 根据鼠标交互事件 同时实现切片的实时提取功能 上代码 include
  • Python VTK numpy数据3D可视化

    在Python的3D图像处理中 通常用numpy array来进行非常方便的计算或者转化 这里记录一下numpy数据的VTK可视化基本流程 包括面绘制 Surfase Rendering 和体绘制 Volume Rendering 除去数据
  • C++11 chrono计时

    我的C 文章列表 C 中Duration Time point和Clocks 万里归来少年心的博客 CSDN博客 time point C 11中的chrono库 实现时间相关的功能 1 time point time point表示一个时
  • 创新生产力的新引擎

    随着科技的飞速发展 人工智能 AI 已成为当今时代的一大热点 近年来 生成式AI的崛起 特别是在自然语言处理 NLP 领域的突破 对传统搜索引擎 推荐系统 语言翻译等领域产生了深远的影响 CHAT GPT作为生成式AI的代表之一 更是引领了
  • 如何将ASCII和BINARY数据同时写入同一个文件

    我的输出使用 VTK 数据类型 由于我的数据变得越来越大 用 ASCII 编写它需要花费相当多的时间 这就是我到目前为止一直在做的事情 我需要将其更改为二进制格式 但问题是该文件有一些标头 请参阅http www vtk org VTK i
  • Google Colab 中保存的文件位于哪里?

    我正在尝试访问保存热方程解的 VTK 文件 但我不知道它在 Colab 中的保存位置 from fenics import import time T 2 0 final time num steps 50 number of time s
  • VTK 帧缓冲区和 OpenCV Mat 数据之间的转换

    我正在 VTK 中可视化数据 我想获取渲染窗口的帧缓冲区并在 OpenCV 应用程序中显示它 我目前正在尝试通过以下方式 void aig VirtualScene Mat cv Mat m typedef unsigned char pi
  • fortran 代码中 Rectilinear_grid 的二进制 vtk 无法通过 paraview [重复]

    这个问题在这里已经有答案了 我使用了 stackoverflow 发布的代码并将其修改为 program VTKBinary implicit none real 4 x 2 0 1 real 4 y 2 0 1 real 4 z 2 0
  • 在python中使用VTK找到3D空间中两个圆柱体的交集

    在 python 中使用 VTK 我编写了一些代码来为我想要的对象创建一个 actor 例如对于气缸 def cylinder object startPoint endPoint radius my color DarkRed USER
  • vtk中顶点和点的区别

    顶点和点之间的主要区别是什么VTK http www vtk org 好吧 我正在将一些计算点分配给vtkPolyData http www vtk org doc nightly html classvtkPolyData html ou
  • 使用vtk和k3d在jupyter笔记本中渲染gltf/glb文件

    我探索了如何在 jupyter 笔记本中内联渲染 gltf glb 文件以保持查看器回调交互性完整的可用方法 我最终使用 vtk 和 k3d 来实现这一目标 我遇到的两个障碍是 如何使用 vtkGLTFReader 从 vtkPolyDat
  • 如何将 vtkSphere 保存到 VTK 文件?

    我正在尝试将多个球体保存到一个文件中 以便稍后使用 ParaView 进行可视化 我拥有的是一个文本文件 其中包含有关每个球体的位置和形状 半径 的信息 我正在使用 Python 和 VTK 构建一个文件来可视化 ParaView 中的数据
  • Python导入vtk时DLL导入错误

    我需要使用VTK我在 Windows 10 机器上使用 python 编写了库 版本 5 10 因为我正在处理现有代码 但如果没有 我无法导入它DLLImport error Python 2 7 12 v2 7 12 d33e0cf915
  • CMakeExternalProject_Add() 和 FindPackage()

    是否有正确的方法来查找图书馆 通过FindPackage 是用ExternalProject Add 问题是 CMake 无法在 CMake 时找到该库 因为外部库是在编译时构建的 我知道在超级构建中构建库和项目时可以组合这两个 CMake
  • 使用 cmake 将两种解决方案合二为一

    我有两个单独的 Visual Studio 2013 解决方案 我想将它们迁移到一个解决方案中 因为第一个解决方案 使用 Qt 充当第二个解决方案的 GUI 最后 我希望有一个结构如下的单一解决方案 Solution All Build P
  • Numpy uint8_t 数组到 vtkImageData

    我正在尝试拍摄一个或三个通道的 2D 图像并使用 VTK 中显示它们vtkImageActor 据我了解 要显示的当前帧可以通过调用来更新SetImageData on vtkImageActor并提供一个实例vtkImageData 我已

随机推荐

  • 符号优先级误区一:移位运算符优先级比加减运算符低

    目录 移位运算符优先级比加减运算符低 误区 发现问题 实际结果 举例子证实 代码如下 实际结果 移位运算符优先级比加减运算符低 这是我在做二分查找时发现的问题 误区 发现问题 直接除2 int mid start end start 2 移
  • message from server: “Host is not allowed to connect to this MySQL server“问题的解决办法

    数据库安装完成后 默认是不能远程登陆的 只能在本地用localhost 或者127 0 0 1登录访问 如果需要远程登录 则需要修改mysql设置 具体修改方式 1 本地登录mysql root localhost mysql u root
  • Java的网络编程

    网络编程是指编写运行在多个设备 计算机 的程序 这些设备都通过网络连接起来 java net 包中 J2SE 的 API 包含有类和接口 它们提供低层次的通信细节 你可以直接使用这些类和接口 来专注于解决问题 而不用关注通信细节 java
  • react生命周期---参考学习20220726

    react生命周期笔记 笔记 react生命周期 链接 react生命周期 https projects wojtekmaj pl react lifecycle methods diagram 1 挂载时 挂载时调用四个生命周期函数 2
  • Nginx高可用实战

    来源 jingfengjiaoyu Nginx的特点 跨平台 Nginx 可以在大多数 Unix like OS编译运行 而且也有Windows的移植版本 配置异常简单 非常容易上手 配置风格跟程序开发一样 神一般的配置 非阻塞 高并发连接
  • [QT编程系列-42]: QT定时器

    目录 第1章 QT下的定时器 1 1 主要的对象 1 2 QTTimer定时的特点 1 3 QT高精度定时器QElapsedTimer 计时 第2章 Windows操作系统下的高性能定时器 2 1 时钟分辨率 2 2 两种来实现高性能定时器
  • 使用阿里云日志服务来分析日志

    随着云服务技术越来越成熟 作为一枚运维 不得不感慨云计算的发展对我的职业生涯起了积极推动的作用 一方面我可以通过云服务来提高我的工作效率 另一方面我节省了更多时间来学习 在提高我专业度的同时 个人能力也越来越强 在此我就以阿里云日志服务 给
  • μCOS-II系统之时间管理函数OSTimeDlyHMSM()

    上次学习了OSTimeDly 函数 了解了OSTimeDly 基本应用 同时 COS II还提供了另一个系统延时函数OSTimeDlyHMSM 函数 下面来说说这个函数的基本应用 这个函数是以小时 H 分 M 秒 S 和毫秒 m 四个参数来
  • 二分查找算法c语言函数,BinarySearch 经典二分查找算法

    前言 二分查找算是最经典也最入门的算法了 大一新生刚学C语言就开始写 但是看似简单的二分算法 想要考虑周全写得完美也是要费点功夫 比如java库里的二分查找 一个溢出的bug还存在了很久 更有号称90 程序员写不出无BUG的二分查找程序 夸
  • 亲测有效!帮你更方便更舒服使用ubuntu20.04!!!

    今天要记录的是如何更舒服的使用ubuntu20 04 全部内容就在上面这张图里 包括三方面 1 ubuntu美化 2 ubuntu扩展 3 必备软件 1 ubuntu美化 这部分内容可以直接参考 这位大佬 讲的很详细也很清楚 需要做一点补充
  • 【JVM 内存结构

    内存结构 前言 简介 程序计数器 定义 作用 特点 示例 应用场景 主页传送门 传送 前言 Java 虚拟机的内存空间由 堆 栈 方法区 程序计数器和本地方法栈五部分组成 简介 JVM Java Virtual Machine 内存结构包括
  • 异常相关面试题

    1 java中的异常继承体系及常见运行时异常 Throwable类是所有异常或错误的超类 它有两个子类 Error和Exception 分别表示错误和异常 其中异常Exception 分为运行时异常 RuntimeException 和编译
  • js合并数组对象(将数组中具有相同属性对象合并到一起,组成一个新的数组)

    一 根据数组对象中某一key值 合并相同key值的字段 到同一个数组对象中 组成新的数组 1 原数组 var array id 1 name Alice id 2 name Bob id 1 age 25 id 3 name Charlie
  • 机器学习 | Sklearn中的朴素贝叶斯全解

    前期文章介绍了朴素贝叶斯理论 掌握理论后如何去使用它 是数据挖掘工作者需要掌握的实操技能 下面来看看Sklearn中都有哪些朴素贝叶斯 朴素贝叶斯是运用训练数据学习联合概率分布 及
  • uniapp微信小程序实现对H5的全屏适配(@莫成尘)

    复制代码您将看到和一下截图一样的效果 我们将适配全屏至正常h5下的所以页面大小 您再此处将依然使用rpx作为开发单位
  • Linux网络编程 - 基于TCP的服务器端/客户端(1)

    一 理解 TCP 和 UDP 根据数据传输方式的不同 基于网络传输协议的套接字一般分为TCP套接字和UDP套接字 因为TCP是面向连接的 因此又称为基于流 stream 的套接字 TCP Transmission Control Proto
  • Android recyclerView只显示一条数据

    recyclerView的数据集合里明明很多条数据 为什么只显示了一条数据 代码里一顿debug过后 还去翻onBindViewHolder的注释文档 你是不是还是死活找不到原因 骚年 该扇自己耳光了 把item的高度设置成了match p
  • linux环境变量和软件安装路径 小结

    linux环境变量和软件安装路径 小结 目录 linux环境变量和软件安装路径 小结 1 背景 2 Linux环境变量设置 1 对所有用户永久生效 2 对单一用户永久生效 3 当前shell BASH 临时有效 4 查看环境变量 expor
  • sort函数自定义排序

    sort函数自定义排序 咳咳 自定义排序说实话用的地方还是很多的 像ACM里面 天梯赛里面 特别是天梯 必出这玩意 咳咳 水点字数 咱继续 首先哈 我们来看一下c 自带的排序 可以看出哈 默认是按升序排序的 sort不但可以对整型进行排序还
  • VTK交互器

    VTK交互器定义了用户了与VtkWidget界面的交互方式 结构图如下 交互器类名 功能 vtkInteractorStyle 一个实现大部分动作的基类 对交互只有接口 没有实际功能 vtkInteractorStyle3D 允许用户交互