我的第一个 VTK 程序

我的第一个VTK程序--绘制球体 第一个VTK程序。 阅读详情

我的第一个 VTK 程序

环境:

  1. Visual Studio 2022 Commumity
  2. Qt 6.2.3 MSVC2019 64位
  3. VTK 9.3.0

不会Cmake编译VTK库?看这个:使用 Cmake 对 VTK-9.3.0 进行编译

不会在 VS2022里配置 VTK?看这个:VS2022+QT使用VTK教程

不会 VS2022 里配置 Qt?看这个:Visual Studio 2022 中 Qt 开发环境的搭建

VTK 可视化流程

在这里插入图片描述

源程序

中间遇到程序闪退,解决方法:VTK程序运行闪退解决方案

#include <vtkSmartPointer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkProperty.h>
#include "vtkAutoInit.h"

VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);

int main()
{
	// 新建一个 Source 数据源对象
	vtkSmartPointer<vtkCylinderSource> cylinder = nullptr;
	cylinder = vtkSmartPointer<vtkCylinderSource>::New();
	// 设置属性
	cylinder->SetHeight(3.0); // 柱体高度
	cylinder->SetRadius(1.0); // 柱体半径
	cylinder->SetResolution(200); // 柱体横截面的边数
	// 新建一个 Mapper 映射器对象
	vtkSmartPointer<vtkPolyDataMapper> cylinderMapper = nullptr;
	cylinderMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
	// 接受 cylinder 的输出,将数据映射为几何元素
	cylinderMapper->SetInputConnection(cylinder->GetOutputPort());
	// 新建一个 Actor 演示对象
	vtkSmartPointer<vtkActor> cylinderActor = nullptr;
	cylinderActor = vtkSmartPointer<vtkActor>::New();
	// vtkActor 派生自 vtkProp 类,渲染场景中数据的可视化表达是通过 vtkProp 的子类负责的
	// vtkProp 子类负责确定渲染场景中对象的位置、大小和方向信息
	cylinderActor->SetMapper(cylinderMapper);
	cylinderActor->GetProperty()->SetColor(0.0, 0.0, 1.0);
	// 创建一个 Renderer 渲染器对象,负责管理场景的渲染过程
	vtkSmartPointer<vtkRenderer> renderer = nullptr;
	renderer = vtkSmartPointer<vtkRenderer>::New();
	// 添加 vtkProp 类型的对象到渲染场景中
	renderer->AddActor(cylinderActor);
	// 设置渲染场景的背景颜色
	renderer->SetBackground(1.0, 1.0, 1.0);
	// 创建一个 Window 窗口对象,负责本地计算机系统中窗口创建和渲染过程管理
	vtkSmartPointer<vtkRenderWindow> window = nullptr;
	window = vtkSmartPointer<vtkRenderWindow>::New();
	window->AddRenderer(renderer);
	window->SetSize(600, 480); // 设置窗口大小
	window->Render();
	window->SetWindowName("Cylinder"); // 设置窗口标题
	// 新建一个 Interactor 交互器对象,提供平台独立的响应鼠标、键盘和时钟事件的交互机制
	vtkSmartPointer<vtkRenderWindowInteractor> interactor = nullptr;
	interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
	// 设置渲染窗口,消息是通过渲染窗口捕获到的,所以必须要给交互器对象设置渲染窗口
	interactor->SetRenderWindow(window);
	// 新建一个交互器样式对象,该样式下,用户通过控制相机对物体作旋转、放大、缩小等操作
	vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = nullptr;
	style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
	// 定义交互器样式,默认的交互样式为 vtkInteractorStyleSwitch
	interactor->SetInteractorStyle(style);

	interactor->Initialize();
	interactor->Start();
	// 使用了智能指针,不需要手动释放内存
	return EXIT_SUCCESS;
}

运行结果

其显示的一个多边形棱柱,其中可以通过cylinder->SetResolution(200)设置该柱体的边数,将这个值设置较大时,图中的轮廓已经看不清了。

在这里插入图片描述

在得到这个图像后,将鼠标左键放置在窗口内,长按并移动鼠标时能够旋转该柱体;滚动鼠标滚轮,可以缩放柱体;长按并按住shift时,可以通过鼠标拖动图像;另外,可以按P键观察到图中的红框。

很全的VTK入门程序样例(约270个样例) 包括VTK融入MFC、非真实感渲染、体绘制ironprot及球形体、各种Widget切割、绘制彩色平面及立方体、绘制各种点线平面、读入各种文件绘制、各种彩球刺球绘制、视点研究、绘制各种圆锥圆柱等等270余个样例。 立即下载

相关推荐

vtk入门程序

VTK程序代码,VTK的入门程序例子,方便初学者的学习

vtk学习教程(一)

vtk教程一

Littlehero_121的博客 4935

VTK的第一个程序

一个简单的源程序,适合VTK初学者。该程序是画了一个立体的箭头的图形,可以运行成功,简单易懂。

VTK学习笔记(二十二)vtk编译测试所有官方程序

VTK学习笔记(二十二)vtk编译测试所有官方程序 学习VTK时,每次都要找到单个测试程序,一个一个的编译测试比较浪费时间。 c++ 测试程序:https://kitware.github.io/vtk-examples/site/Cxx/ python测试程序:https://kitware.github.io/vtk-examples/site/Python/ 每次搜到需要的测试程序,要么单独拷贝下来在python环境中执行,要么在c++环境下编译运行。而且还经常为找不到测试用例着急。 其实还可以有其他

juluwangriyue的博客 2056

VTK入门,简单的程序,轻松入门

一共十九个程序,都是基础,简单的程序,可以轻松入门

告别网络卡顿!保姆级教程:用国内镜像源5分钟搞定ESP32开发环境(Arduino IDE)

本文提供了一份保姆级教程,教你如何利用国内镜像源在5分钟内快速搭建ESP32开发环境(Arduino IDE),告别网络卡顿问题。教程详细介绍了镜像源配置、开发板安装、测试程序烧录等步骤,并包含与巴法云对接的实战案例,帮助开发者高效完成物联网项目。

weixin_42536058的博客 593

VTK和Cmake的安装并运行一个vtk的案例

要安装VTK的话首先需要安装CMAKE,CMAKE的官网: https://cmake.org/download/进入Cmake下载网页,可以看到很多版本,我们选择最新的,在文件列表中,我们选择最便于安装的msi,如下图所示。安装的时候我们选择添加到系统变量(for all users),这样就省去了手动添加环境变量的步骤。访问安装路径中的bin里面的cmake-gui可以看到图形界面工具。

qq_42277704的博客 4572

Apk脱壳圣战之---脱掉“梆梆加固”的保护壳

一、前言 现如今Android用户的安全意识不是很强,又有一些恶意开发者利用应用的名字吸引眼球,包装一个恶意锁机收费的应用,在用户被骗的安装应用之后,立马手机锁机,需要付费方可解锁。这样的恶意软件是非常让人痛恨的。所以本文就用一个案例来分析如何破解这类应用,获取解锁密码,让被骗的用户可以找回爽快! 二、分析软件锁机原理 本文用的是一款叫做:安卓性能激活.apk,关于样本apk文件后面会...

尼古拉斯.赵四的博客 5061

用C++写VTK程序

用C++写VTK程序 主要使用的是VTKprefix文件夹里面的文件.(F:\VTK\VTKprefix) 在C++程序中,将VTKprefix->bin文件夹中的所有.dll文件都复制到新建的C++项目目录下; 然后再新建的项目中设置“附加包含目录”:F:\ VTKprefix \ include \ vtk-8.2 然后再“链接器”下找到 ‘输入’,“附加依赖库”:F:\ VTK \ VTKprefix \ lib \ *.lib ......

欢迎来到我的博客小天地 1557

CSI Tools 工具的安装 Intel 5300 + Ubuntu14.04

在 ubuntu14 系统上面安装 CSI Tools,2020最新教程,亲测可用,只要保证和我做法一致绝对可以安装好。

WS的小屋 1万+

AT89C52单片机+LCD屏:手把手教你做一个能算小数和负数的计算器(附完整代码)

本文详细介绍了如何使用AT89C52单片机和LCD1602显示屏构建一个支持小数和负数运算的高精度计算器。从硬件选型、系统架构设计到核心算法实现,提供了完整的代码示例和优化技巧,特别适合51单片机初学者和课程设计参考。

weixin_30374009的博客 371

VTK 体绘制程序(完整代码注释)

本程序为《VTK图形图像开发进阶》随书代码,本人结合教材和其他资源对其进行完整注释,方便初学者理解VTK体绘制用法。 95%代码包含注释,并涵盖所需知识讲解。 /********************************************************************** 文件名: 7.1_VolumeRenderingApp.cpp Copyright (c) 张晓东, 罗火灵. All rights reserved. 更...

但求前程 1608

【嵌入式Linux】EC20模块多运营商自适应PPP拨号实战:从IMSI识别到网络配置

本文详细介绍了在嵌入式Linux系统中,如何基于EC20 4G模块实现多运营商自适应PPP拨号。通过解析SIM卡的IMSI识别运营商,并动态配置对应的APN和拨号参数,结合AT指令交互与健壮的pppd脚本,解决了设备跨地域部署时的网络自动连接问题,提升了物联网设备的部署效率和稳定性。

fox11的博客 904

【VTK.js】第一个vtk.js程序

使用vtk.js预构建的脚本文件来构建我们的第一个应用程序。 新建index.html文件,写入以下内容: <!DOCTYPE html> <html> <body> <script type="text/javascript" src="https://unpkg.com/vtk.js"></script> ...

CCC的专栏 3830

EV1527、PT2262傻傻分不清?一文讲透常见315/433MHz遥控编码协议区别与选型

本文深度对比了EV1527、PT2262和SC5262三种常见的315/433MHz遥控编码协议,详细解析了它们的技术特点、成本效益和适用场景。EV1527作为低成本方案的首选,特别适合智能家居和简易安防设备;PT2262在稳定性和兼容性上表现优异;而SC5262则在安全性方面具有显著优势。文章还提供了实用的选型框架和工程建议,帮助开发者在不同应用场景中做出最优决策。

weixin_33640562的博客 354

【Embabel Agent】生产级最佳实践与避坑指南

本文围绕架构师最关心的 8 大维度展开:测试策略(FakeOperationContext 实现 Action 级单元测试、Prompt 质量与敏感信息校验)、MCP 集成实战(STDIO/HTTP 双模式、自建 Server、Docker MCP 生态)、RAG 检索增强、OpenTelemetry 全链路可观测性与追踪、Docker/K8s 生产部署、API Key 管理与 @Tool 安全防护、模型选择/缓存/并行等性能优化,以及过度依赖 LLM、忽略错误处理等 8 大常见反模式避坑指南。

program哲学 309

VTK第一个程序

这是看你vtk下opengl是32位才加的,不然运行报错,如果说缺失dll,可以把vtk的dll目录的路径放到环境变量里,就可以了,我用了网上常说的两种办法都没起作用。这个就是第一个程序,不知道为何运行出来鼠标一直转圈。写这个的时候有的得加上。

weixin_48657573的博客 290

SAP会计凭证导入ABAP开发模板+注意点—附带源码

开发并不仅仅只要考虑实现的功能,只实现功能的是程序,考虑到使用场景的是工程。使用bapi校验创建会计凭证的数据,报错和参数和正式创建一致。用途,防止产生错误的凭证,即使财务凭证可以冲销。正式创建会计凭证。隐藏的坑。

小九啥也不会 1233

vtk第一个程序

首先 设置环境变量 解决方案资源管理器 选中项目名字 而不是ALL_BUILD 选项卡 项目-属性 右侧 附加依赖项->编辑 kernel32.libuser32.libgdi32.libwinspool.libshell32.libole32.liboleaut32.libuuid.libcomdlg32.libadvapi32.libD:\vtk-bin\lib\Debug...

weixin_30297281的博客 194

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

第一个vtk.js程序 锥子

使用vtk.js预构建的脚本文件来构建我们的第一个应用程序。 新建vtk.html文件,写入以下内容: <!DOCTYPE html> <html> <body> <script type="text/javascript" src="https://unpkg.com/@babel/polyfill@7.0.0/dist/polyfill.js"></script> <script type="text/javascript" src="h

不会吉他的肌肉男不是好的挨踢男的专栏 508

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python vtk_python+VTK环境搭建及第一个简单程序代码

简介:Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk。在Windows环境下用Python语言开发VTK程序...

weixin_39652869的博客 262

python vtk教程_python+VTK环境搭建及第一个简单程序代码

导读热词简介:Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk。在Windows环境下用Python语言开发V...

weixin_30096321的博客 1443

第一个VTK-MFC程序

1. 使用MFC向导创建一个MFC对话框工程,工程名为vtkDLG2. 修改资源,添加一个Image Control控件作为VTK渲染窗口,ID为IDC_VTK_WND 向主vtkDLGDlg类中添加OnSize OnDestroy函数3. 注意在使用CMake配置VTK环境前一定要确定已经完成第2步4. 删除多余工程文件,只留下 *.h,*.cpp,*.aps,*.rc和res文件夹5. ...

weixin_30519071的博客 222

VTK入门指南:5步创建你的第一个3D程序

最近在学习3D可视化技术时接触到了VTK(Visualization Toolkit),它是一个强大的开源工具库,专门用于处理3D图形和可视化任务。将所有组件组装起来后,我们得到一个完整的程序:它显示一个彩色立方体,支持鼠标交互旋转缩放,并具有基本的光照效果。对于想进一步探索的新手,可以尝试修改立方体为其他形状(如球体、圆柱体),或者添加多个物体来创建更复杂的场景。对于想快速验证想法的新手来说,这种即开即用的体验非常友好。通过这个入门项目,我不仅掌握了VTK的基本使用流程,还体会到了3D程序开发的乐趣。

SunstoneLion34的博客 734

(VS2019+VTK9.3)第一个VTK程序

经过配置后,VS2019+VTK 9.3,第一个VTK程序,可显示。

oldwangold的博客 398
上一篇: Visual Studio 2022 中 Qt 开发环境的搭建
下一篇: 操作系统:死锁
UestcXiye
博客等级 码龄8年 9031粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值