VTK知识学习(33)-交互问题2
1、前言
主要是针对前面有过实现不了交互的情况进行说明,经过一些尝试和分析调用API,总算实现RenderWindowControl函数回调正常串接,当然这个移动处理事件的效果目前也没有确认。
2、使用
vtkImageReslice reslice = vtkImageReslice.New();private void TestInteractorStyle(){vtkMetaImageReader reader = vtkMetaImageReader.New();reader.SetFileName("F:\\code\\VTK\\TestActiViz\\bin\\Debug\\data\\brain.mhd");reader.Update();int[] extent = reader.GetOutput().GetExtent();double[] spacing = reader.GetOutput().GetSpacing();double[] origin = reader.GetOutput().GetOrigin();double[] center = new double[3];center[0] = origin[0] + spacing[0] * 0.5 * (extent[0] + extent[1]);center[1] = origin[1] + spacing[1] * 0.5 * (extent[2] + extent[3]);center[2] = origin[2] + spacing[2] * 0.5 * (extent[4] + extent[5]);double[] axialElements ={1, 0, 0, 0,0, 1, 0, 0,0, 0, 1, 0,0, 0, 0, 1};//提取平行于YZ平面的切片IntPtr ptrData = Marshal.AllocHGlobal(sizeof(double) * axialElements.Length);Marshal.Copy(axialElements, 0, ptrData, axialElements.Length);vtkMatrix4x4 resliceAxes = vtkMatrix4x4.New();resliceAxes.DeepCopy(ptrData);resliceAxes.SetElement(0, 3, center[0]);resliceAxes.SetElement(1, 3, center[1]);resliceAxes.SetElement(2, 3, center[2]);reslice.SetInputData(reader.GetOutput());reslice.SetOutputDimensionality(2);reslice.SetResliceAxes(resliceAxes);reslice.SetInterpolationModeToLinear(); //指定切面提取中的插值方式为线性插值reslice.Update();vtkLookupTable colorTable = vtkLookupTable.New();colorTable.SetRange(0, 1000);colorTable.SetValueRange(0, 1);colorTable.SetSaturationRange(0, 0);colorTable.SetRampToLinear();colorTable.Build();vtkImageMapToColors colorMap = vtkImageMapToColors.New();colorMap.SetLookupTable(colorTable);colorMap.SetInputConnection(reslice.GetOutputPort());colorMap.Update();vtkImageActor orgActor = vtkImageActor.New();orgActor.SetInputData(colorMap.GetOutput());vtkRenderer renderer3 = vtkRenderer.New();renderer3.AddActor(orgActor);renderer3.ResetCamera();renderer3.SetBackground(0.4, 0.5, 0.6);vtkRenderWindow renderWindow = renderWindowControl.RenderWindow;//vtkImageViewer2 imageViewer = vtkImageViewer2.New();//imageViewer.SetSize(500, 500);//vtkRenderWindow renderWindow = imageViewer.GetRenderWindow();renderWindow.AddRenderer(renderer3);vtkRenderWindowInteractor windowInteractor = renderWindow.GetInteractor();windowInteractor.MouseMoveEvt += ImageStyle_MouseMoveEvt;windowInteractor.LeftButtonPressEvt += ImageStyle_LeftButtonPressEvt;windowInteractor.LeftButtonReleaseEvt += ImageStyle_LeftButtonReleaseEvt;renderWindow.Render();}
实现事件回调的对象是通过控件对象获取:
这个事件回调处理逻辑就不在复核。你可以自由发挥。
在事件回调的sender是vtkRenderWindowInteractor,你可以按你的设计去获取或设置一些参数来实现你的想法了。
3、总结
我尝试过重写这个鼠标事件,可是一个也不触发 ,想了想还是内部没有下发的问题。
再看这个vteRenderWindow可以获取到交互对象,就把这个交互对象拿出来进行注册事件就可以了。
猜想可能是这个事件传递到他这里就不下发了(当然啊也可能是一些设置没有开启)。毕竟他这个上面有这么些方法,不过后面还有机会打交道的。
类注释:
platform-independent render window interaction including picking and frame rate control. vtkRenderWindowInteractor provides a platform-independent interaction mechanism for mouse/key/time events. It serves as a base class for platform-dependent implementations that handle routing of mouse/key/timer messages to vtkInteractorObserver and its subclasses. vtkRenderWindowInteractor also provides controls for picking, rendering frame rate, and headlights. vtkRenderWindowInteractor has changed from previous implementations and now serves only as a shell to hold user preferences and route messages to vtkInteractorStyle. Callbacks are available for many events.
Platform specific subclasses should provide methods for manipulating timers, TerminateApp, and an event loop if required via Initialize/Start/Enable/Disable.
独立于平台的渲染窗互,包括拾取和帧速率控制。
vtkRenderWindowInteractor 为鼠标/键/时间事件提供了一种独立于平台的交互机制。它用作平台相关实现的基类,这些实现处理将鼠标/键/计时器消息路由到 vtkInteractorObserver 及其子类。
vtkRenderWindowInteractor 还提供了用于拾取、渲染帧速率和前照灯的控件。
vtkRenderWindowInteractor 与以前的实现不同,现在仅用作 shell,用于保存用户首选项并将消息路由到 vtkInteractorStyle。回调可用于许多事件。
特定于平台的子类应提供用于操作计时器、TerminateApp 和事件循环的方法(如果需要)通过 Initialize/Start/Enable/Disable。
相关文章:
![](https://i-blog.csdnimg.cn/direct/f4a58cb3093040dd9b7329e477ed6be3.png)
VTK知识学习(33)-交互问题2
1、前言 主要是针对前面有过实现不了交互的情况进行说明,经过一些尝试和分析调用API,总算实现RenderWindowControl函数回调正常串接,当然这个移动处理事件的效果目前也没有确认。 2、使用 vtkImageReslice reslice vtkImageReslice.New();p…...
![](https://www.ngui.cc/images/no-images.jpg)
Centos9-SSH免密登录配置-修改22端口-关闭密码登录-提高安全性
Centos9-SSH免密登录配置-修改22端口-关闭密码登录 生成秘钥对将公钥信息存进authorized_keys测试登录查询访问记录、比对指纹更换22访问端口关闭账号密码登录生成秘钥对 生成密钥对,指定 备注 和 文件目录命令执行后,默认两次回车,不设置秘钥使用密码ssh-keygen -t rsa -b …...
![](https://www.ngui.cc/images/no-images.jpg)
SqlServer: An expression services limit has been reached异常处理
在工作中遇到一个问题,因为项目很老,代码很不规范,出现一种场景: 查询所有客户(5w条以上),然后根据客户Id,再去其他表查询,代码中是直接将customerId拼接到sql中去查询,形成的sql如…...
![](https://www.ngui.cc/images/no-images.jpg)
CentOS下安装Docker
Docker 必须要在Linux环境下才能运行,windows下运行也是安装虚拟机后才能下载安装运行,菜鸟教程 下载安装 linux 依次执行下边步骤 更新 yum yum update 卸载旧的Docker yum remove docker docker-client docker-client-latest docker-common doc…...
![](https://i-blog.csdnimg.cn/direct/4df607816fe2408e97e0a4efe2b4cdec.png)
WPF控件Grid的布局和C1FlexGrid的多选应用
使用 Grid.Column和Grid.Row布局,将多个C1FlexGrid布局其中,使用各种事件来达到所需效果,点击复选框可以加载数据到列表,移除列表的数据,自动取消复选框等 移除复选框的要注意!!!&am…...
![](https://i-blog.csdnimg.cn/direct/3bacdce6b54747b4bf6f6ffb214abf55.png)
Jenkins-持续集成、交付、构建、部署、测试
Jenkins-持续集成、交付、构建、部署、测试 一: Jenkins 介绍1> Jenkins 概念2> Jenkins 目的3> Jenkins 特性4> Jenkins 作用 二:Jenkins 版本三:DevOps流程简述1> 持续集成(Continuous Integration,CI࿰…...
![](https://i-blog.csdnimg.cn/direct/2f836415d51346f68d9ad4a0171f01ea.png)
高级第一次作业
1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。 2、写一个 shel1 脚本,实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。 3、编写个shel 脚本将/usr/local 日录下大于10M的文件转移到…...
![](https://i-blog.csdnimg.cn/img_convert/f9a1935ffc86640a875918802f2a2c43.png)
Copula算法原理和R语言股市收益率相依性可视化分析
阅读全文:http://tecdat.cn/?p6193 copula是将多变量分布函数与其边缘分布函数耦合的函数,通常称为边缘。在本视频中,我们通过可视化的方式直观地介绍了Copula函数,并通过R软件应用于金融时间序列数据来理解它(点击文…...
![](https://i-blog.csdnimg.cn/img_convert/a10c8a00e2253736a1ab329baaf95229.png)
反弹SHELL不回显带外正反向连接防火墙出入站文件下载
什么是反弹shell 正向连接正向连接(Forward Connection):正向连接是一种常见的网络通信模式,其中客户端主动发起连接到服务器或目标系统。正向连接通常用于客户端-服务器通信,客户端主动请求服务或资源,例如…...
![](https://i-blog.csdnimg.cn/direct/b30aa9c696a24ab3871f0eee9705ba1f.jpeg)
后盾人JS--JS值类型使用
章节介绍与类型判断 看看构造函数 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</t…...
![](https://i-blog.csdnimg.cn/direct/5ef19f817e6a4835b0f88642a6dc7941.png)
1月11日
[WUSTCTF2020]CV Maker 可以看到有个注册页面,尝试注册一个用户登进去看看 进来后第一眼就看到文件上传,尝试上传,上传php后返回了 文件上传后端检测exif_imagetype()函数 他提示不是image,也就是需要我们构造一个文件头为图像类…...
![](https://www.ngui.cc/images/no-images.jpg)
【深度学习】Pytorch:加载自定义数据集
本教程将使用 flower_photos 数据集演示如何在 PyTorch 中加载和导入自定义数据集。该数据集包含不同花种的图像,每种花的图像存储在以花名命名的子文件夹中。我们将深入讲解每个函数和对象的使用方法,使读者能够推广应用到其他数据集任务中。 flower_ph…...
![](https://i-blog.csdnimg.cn/direct/153ede1dc6ba4ab282d0cb5d48e199b4.png)
最近在盘gitlab.0.先review了一下docker
# 正文 本猿所在产品的代码是保存到了一个本地gitlab实例上,实例是别的同事搭建的。最近又又又想了解一下,而且已经盘了一些了,所以写写记录一下。因为这个事儿没太多的进度压力,索性写到哪儿算哪儿,只要是新了解到的…...
![](https://i-blog.csdnimg.cn/direct/b35517725e474b499bb9564b339e6d81.png)
OA项目登录
导入依赖,下面的依赖是在这次OA登录中用到的 <!--web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.sprin…...
![](https://www.ngui.cc/images/no-images.jpg)
verilogHDL仿真详解
前言 Verilog HDL中提供了丰富的系统任务和系统函数,用于对仿真环境、文件操作、时间控制等进行操作。(后续会进行补充) 正文 一、verilogHDL仿真详解 timescale 1ns/1ps //时间单位为1ns,精度为1ps, //编译…...
![](https://www.ngui.cc/images/no-images.jpg)
基于http协议的天气爬虫
该系统将基于目前比较流行的网络爬虫技术, 对网站上的天气数据进行查询分析, 最终使客户能够通过简单的操作, 快速, 准确的获取目标天气数据。主要包括两部分的功能, 第一部分是天气数据查询, 包括时间段数…...
![](https://i-blog.csdnimg.cn/direct/68516156c1124c369b72436f76871e53.png)
_STM32关于CPU超频的参考_HAL
MCU: STM32F407VET6 官方最高稳定频率:168MHz 工具:STM32CubeMX 本篇仅仅只是提供超频(默认指的是主频)的简单方法,并未涉及STM32超频极限等问题。原理很简单,通过设置锁相环的倍频系数达到不同的频率&am…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=O83A)
C#,图论与图算法,任意一对节点之间最短距离的弗洛伊德·沃肖尔(Floyd Warshall)算法与源程序
一、弗洛伊德沃肖尔算法 Floyd-Warshall算法是图的最短路径算法。与Bellman-Ford算法或Dijkstra算法一样,它计算图中的最短路径。然而,Bellman Ford和Dijkstra都是单源最短路径算法。这意味着他们只计算来自单个源的最短路径。另一方面,Floy…...
![](https://i-blog.csdnimg.cn/direct/3de8db9ea31a4bdc86f90fb09a12046b.png)
AWS云计算概览(自用留存,整理中)
目录 一、云概念概览 (1)云计算简介 (2)云计算6大优势 (3)web服务 (4)AWS云采用框架(AWS CAF) 二、云经济学 & 账单 (1)定…...
![](https://www.ngui.cc/images/no-images.jpg)
1. npm 常用命令详解
npm 常用命令详解 npm(Node Package Manager)是 Node.js 的包管理工具,用于安装和管理 Node.js 应用中的依赖库。下面是 npm 的一些常用命令及其详细解释和示例代码。 镜像源 # 查询当前使用的镜像源 npm get registry# 设置为淘宝镜像源 …...
![](https://www.ngui.cc/images/no-images.jpg)
js:根据后端返回数据的最大值进行计算然后设置这个最大值为百分之百,其他的值除这个最大值
问: 现在tabData.value 接收到了后端返回的数据, [{text:人力,percentage:‘90’},{text:物品,percentage:‘20’},{text:物理,percentage:‘50’},{text:服务,percentageÿ…...
![](https://i-blog.csdnimg.cn/direct/4bd28d2b5fda4f74b5f641bb762847d8.png)
【Spring】@Size 无法拦截null的原因
问题复现 在构建 Web 服务时,我们一般都会对一个 HTTP 请求的 Body 内容进行校验,例如我们来看这样一个案例及对应代码。当开发一个学籍管理系统时,我们会提供了一个 API 接口去添加学生的相关信息,其对象定义参考下面的代码&…...
![](https://i-blog.csdnimg.cn/direct/8d884a2520134de6b0ad9e5c15d14e6e.png)
【Block总结】掩码窗口自注意力 (M-WSA)
摘要 论文链接:https://arxiv.org/pdf/2404.07846 论文标题:Transformer-Based Blind-Spot Network for Self-Supervised Image Denoising Masked Window-Based Self-Attention (M-WSA) 是一种新颖的自注意力机制,旨在解决传统自注意力方法在…...
![](https://www.ngui.cc/images/no-images.jpg)
用 HTML5 Canvas 和 JavaScript 实现雪花飘落特效
这篇文章将带您深入解析使用 HTML5 Canvas 和 JavaScript 实现动态雪花特效的代码原理。 1,效果展示 该效果模拟了雪花从天而降的动态场景,具有以下特点: 雪花数量、大小、透明度和下落速度随机。雪花会在屏幕底部重置到顶部,形成循环效果。随窗口大小动态调整,始终覆盖…...
![](https://www.ngui.cc/images/no-images.jpg)
【cocos creator】【ts】事件派发系统
触发使用: EventTool.emit(“onClick”) 需要监听的地方,onload调用: EventTool.on(“onClick”, this.onClickEvent, this) /**事件派发*/class EventTool {protected static _instance: EventTool null;public static get Instance(): Eve…...
![](https://www.ngui.cc/images/no-images.jpg)
《探索鸿蒙Next上开发人工智能游戏应用的技术难点》
在科技飞速发展的当下,鸿蒙Next系统为应用开发带来了新的机遇与挑战,开发一款运行在鸿蒙Next上的人工智能游戏应用更是备受关注。以下是在开发过程中可能会遇到的一些技术难点: 鸿蒙Next系统适配性 多设备协同:鸿蒙Next的一大特色…...
![](https://i-blog.csdnimg.cn/direct/aa6f7387cbd0441e996ff33d572f93a2.png)
CSS | CSS实现两栏布局(左边定宽 右边自适应,左右成比自适应)
目录 一、左边定宽 右边自适应 1.浮动 2.利用浮动margin 3.定位margin 4.flex布局 5.table 布局 二、左右成比自适应 1:1 1flex布局 table布局 1:2 flex布局 <div class"father"><div class"left">左边自适应</div><div class"r…...
![](https://www.ngui.cc/images/no-images.jpg)
acwing_3195_有趣的数
acwing_3195_有趣的数 // // Created by HUAWEI on 2024/11/17. // #include<iostream> #include<cstring> #include<algorithm>#define int long longusing namespace std;const int N 1000 50; const int MOD 1e9 7; int C[N][N]; //组合数signed mai…...
![](https://www.ngui.cc/images/no-images.jpg)
Liunx-搭建安装VSOMEIP环境教程 执行 运行VSOMEIP示例demo
本文安装环境为Liunx,搭建安装VSOMEIP环境并运行基础例子。 1. 安装基础环境 使用apt-get来安装基础环境,受网络影响可以分开多次安装。环境好的也可以一次性执行。 sudo apt-get install gcc g sudo apt-get install cmake sudo apt-get install lib…...
![](https://www.ngui.cc/images/no-images.jpg)
Git | git revert命令详解
关注:CodingTechWork 引言 Git 是一个强大的版本控制工具,广泛应用于现代软件开发中。它为开发人员提供了多种功能来管理代码、协作开发和版本控制。在 Git 中,有时我们需要撤销或回退某些提交,而git revert 是一个非常有用的命令…...
![](https://img-blog.csdnimg.cn/23a21f6229cd4633a5c771dc676f21ee.png)
惠阳网站设计开发/泉州关键词快速排名
前面几篇文章我们学习了线性回归的相关知识,今天我们学习逻辑回归。 一、介绍 逻辑回归是一个非常经典的机器学习算法,逻辑回归又称logistic回归分析,看到名字,大家是不是自然而然的认为这是一个回归模型? 其实不然…...
![](/images/no-images.jpg)
外包做网站公司有哪些/百度竞价渠道代理商
缓存三大问题再总结 1、缓存穿透 定义:缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给DB带来压力。 …...
![](https://img-blog.csdnimg.cn/img_convert/46f65c6dcb4c6d9925a39358859a8557.gif)
wordpress视频插件w/网络推广员
原标题:山东高考成绩今日发布!成绩查询看这里!山东高考生注意啦~今天16:20举行山东2020年夏季高考第二次新闻发布会届时将会公布高考录取政策、分数线情况等今天17:00公布2020夏季高考与等级考成绩发布会怎么看?高考成绩怎样查&am…...
![](https://img-blog.csdnimg.cn/1453e3f889904ce09063503984a8d7ad.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pyo55m9Q1BQ,size_20,color_FFFFFF,t_70,g_se,x_16)
网站页面设计费用/运营怎么做
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL也是一个免费的软件。 下载 首先登录MySQL的官网:MySQL :: Developer Zone 点击do…...
![](https://img-blog.csdnimg.cn/20210420110813521.png)
深圳宝安区租房子多少钱一个月/百度seo提高排名费用
下载安装 audacity也有ubuntu版本,通过命令sudo apt install audacity安装 startup.wav文件内容 波形 wave格式: wav 格式,是微软开发的一种文件格式规范,整个文件分为两部分,第一部分是“文件头”,记录重…...
![](https://img-blog.csdnimg.cn/06d58c1d9c054ad981d159c18aa7785a.png)
租车网站建设/营销的方法和技巧
目录 0. 相关文章链接 1. 导包出错 2. 输入参数 3. java.lang.Exception: java.io.IOException: Illegal partition for 13926435656 (4) 4. 是否执行分区过程 5. windows和Linux环境冲突 6. 找不到文件异常 7. 报类型转换异常 8. 集群中运行wc.jar时出现了无法获得输…...