VTK —— 一、Windows10下编译VTK源码,并用Vs2017代码测试(附编译流程、附编译好的库、vtk测试源码)

效果

在这里插入图片描述

在这里插入图片描述

编译

     1、下载VTK8.2.0源码
在这里插入图片描述

     2、解压源码后,进入目录创建build目录,同时在build内创建install目录 (下图install目录是在cmake第一次后才手动创建,建议在创建build时创建)
在这里插入图片描述

     3、打开CMake,如下图填入信息并点击"Configure"后选择如下Vs2017与x64。选择完成后点击"Finish"按钮。
在这里插入图片描述

     4、第一次点击"Configure"后,找到下图两个选项。分别配置创建install路径与勾选Qt。然后点击"Configure"
在这里插入图片描述

     5、第二次点击"Configure"后,找到下图配置Qt的路径,注意路径!然后点击"Configure"后无误再点击"Generate"、无误后继续点击"Open Project",于是Vs会打开该项目。
在这里插入图片描述

     6、如下图,进入vs后首先对"ALL_BUILD"进行生成;生成结束后对"INSTALL"进行生成。最终无误后生成下图下方的目录。
在这里插入图片描述

     7、如下图将VTK生成的插件拷贝到Qt路径下,然后打开QtDesigner 就可以看到有了VTK控件插件。
在这里插入图片描述

附上编译好的库

Vs2017测试代码
#include <vtkActor.h>
#include <vtkCamera.h>
#include <vtkCylinderSource.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>#include <array>#include "vtkAutoInit.h" 
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);int main(int, char*[])
{vtkNew<vtkNamedColors> colors;// Set the background color.std::array<unsigned char, 4> bkg{ {26, 51, 102, 255} };colors->SetColor("BkgColor", bkg.data());// This creates a polygonal cylinder model with eight circumferential facets// (i.e, in practice an octagonal prism).vtkNew<vtkCylinderSource> cylinder;cylinder->SetResolution(8);// The mapper is responsible for pushing the geometry into the graphics// library. It may also do color mapping, if scalars or other attributes are// defined.vtkNew<vtkPolyDataMapper> cylinderMapper;cylinderMapper->SetInputConnection(cylinder->GetOutputPort());// The actor is a grouping mechanism: besides the geometry (mapper), it// also has a property, transformation matrix, and/or texture map.// Here we set its color and rotate it around the X and Y axes.vtkNew<vtkActor> cylinderActor;cylinderActor->SetMapper(cylinderMapper);cylinderActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData());cylinderActor->RotateX(30.0);cylinderActor->RotateY(-45.0);// The renderer generates the image// which is then displayed on the render window.// It can be thought of as a scene to which the actor is addedvtkNew<vtkRenderer> renderer;renderer->AddActor(cylinderActor);renderer->SetBackground(colors->GetColor3d("BkgColor").GetData());// Zoom in a little by accessing the camera and invoking its "Zoom" method.renderer->ResetCamera();renderer->GetActiveCamera()->Zoom(1.5);// The render window is the actual GUI window// that appears on the computer screenvtkNew<vtkRenderWindow> renderWindow;renderWindow->SetSize(300, 300);renderWindow->AddRenderer(renderer);renderWindow->SetWindowName("Cylinder");// The render window interactor captures mouse events// and will perform appropriate camera or actor manipulation// depending on the nature of the events.vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;renderWindowInteractor->SetRenderWindow(renderWindow);// This starts the event loop and as a side effect causes an initial render.renderWindow->Render();renderWindowInteractor->Start();return EXIT_SUCCESS;
}

在这里插入图片描述

测试代码出现的问题

在这里插入图片描述

     解决: 源程序前面加如下代码

#include "vtkAutoInit.h" 
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);

笔者

笔者 - jxd

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

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

相关文章

卷积神经网络结构组成与解释

卷积神经网络结构组成与解释 卷积神经网络是以卷积层为主的深度网路结构&#xff0c;网络结构包括有卷积层、激活层、BN层、池化层、FC层、损失层等。卷积操作是对图像和滤波矩阵做内积&#xff08;元素相乘再求和&#xff09;的操作。 1. 卷积层 常见的卷积操作如下&#x…

UE5学习日记——实现自定义输入及监听输入,组合出不同的按键输入~

UE5的自定义按键和UE4有所不同&#xff0c;在这里记录一下。 本文主要是记录如何设置UE5的自定义按键&#xff0c;重点是学会原理&#xff0c;实际开发时结合实际情况操作。 输入映射 1. 创建输入操作 输入操作并不是具体的按键映射&#xff0c;而是按键的激活方式&#xff0…

Avalonia中MVVM模式下设置TextBox焦点

Avalonia中MVVM模式下设置TextBox焦点 前言引入Nuget库程序里面引入相关库修改前端代码#效果图 前言 我们在开发的过程中,经常会遇到比如我在进入某个页面的时候我需要让输入焦点聚焦在指定的文本框上面,或者点击某个按钮触发某个选项的时候也要自动将输入焦点聚焦到指定的文…

制作一个OpenHarmony视频播放器

简介 媒体子系统是 OpenHarmony 中重要的子系统&#xff0c;可以提供音视频播放能力。媒体子系统为开发者提供一套简单且易于理解的接口&#xff0c;使得开发者能够方便接入系统并使用系统的媒体资源。媒体子系统提供以下常用功能&#xff1a; 音视频播放&#xff08;AVPlaye…

比特币减半:挑战与机遇

比特币减半是加密货币领域中一件备受关注的大事&#xff0c;它不仅影响着比特币本身的发展&#xff0c;也深刻影响着整个加密货币市场的走势。在这个历史性时刻&#xff0c;我们有必要深入分析比特币减半带来的挑战与机遇&#xff0c;以及未来的加密货币发展趋势。 挑战&#x…

【Entity Framework】聊一聊EF中继承关系

【Entity Framework】聊一聊EF中继承关系 文章目录 【Entity Framework】聊一聊EF中继承关系一、概述二、实体类型层次结构映射三、每个层次结构一张表和鉴别器配置四、共享列五、每个类型一张表配置六、每个具体类型一张表配置七、TPC数据库架构八、总结 一、概述 Entity Fra…

如何实现对空调状态监测的监控

随着科技的飞速发展和人们生活水平的持续提高&#xff0c;空调已经成为现代家庭和办公环境中不可或缺的一部分。然而&#xff0c;传统的空调使用方式往往存在能效低下、操作不便等问题。为了解决这些问题&#xff0c;智能空调控制器应运而生&#xff0c;它不仅能实现对空调状态…

盘点2024年最新可用免费云服务器

随着云计算技术的快速发展&#xff0c;越来越多的企业和个人开始使用云服务器来满足各种业务需求。云服务器作为云计算的核心服务之一&#xff0c;以其弹性扩展、按需付费等特点受到广泛关注。本文将为大家盘点2024年最新可用免费云服务器&#xff0c;助力大家轻松上云&#xf…

mysql的下载、安装

首先进入官网&#xff1a;MySQL 点击“downloads”进入下载界面 2.往下滑动滚轮&#xff0c;点击“mysql community...&#xff08;公开版&#xff09;” 3.往下滑&#xff0c;找到并单击“install for Windows” 4.选择版本&#xff1a;初学者可以使用较低版本&#xff0c;较…

软件架构静态演化

1.静态演化需求 软件架构静态演化的需求是广泛存在的&#xff0c;可以归结为两个方面。 &#xff08;1&#xff09;设计时演化需求。在架构开发和实现过程中对原有架构进行调整&#xff0c;保证软件实现与架构的一致性以及软件开发过程的顺利进行。 &#xff08;2&#xff09;运…

20240409在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04时跑通4G模块EC200A-CN【PPP模式】

20240409在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04时跑通4G模块EC200A-CN【PPP模式】 2024/4/9 14:25 【不建议使用ppp模式&#xff0c;功耗大&#xff0c;貌似更过分的&#xff01;网速还低&#xff01;】 【唯一的优点&#xff1a;ppp模式下是通过脚本配置…

什么是WAAP,对网络安全可以起到哪些帮助

自从只能在本地设备上安装并运行应用程序的时代以来&#xff0c;我们在技术方面取得了长足的进步。随着云计算的兴起、网络的普及和带宽的提高&#xff0c;现代Web应用程序的访问变得像在浏览器中输入网址一样简单。 这意味着企业可以更方便地部署用于为客户提供服务的应用程序…

Excel文件解析

在此模块的学习中&#xff0c;我们需要一个新的开源类库---Apahche POI开源类库。这个类库的用途是&#xff1a;解析并生成Excel文件(Word、ppt)。Apahche POI基于DOM方式进行解析&#xff0c;将文件直接加载到内存&#xff0c;所以速度比较快&#xff0c;适合Excel文件数据量不…

【Qt 学习笔记】Qt常用控件 | 按钮类控件Radio Button的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 按钮类控件Radio Button的使用及说明 文章编号&#xff…

每日一题---OJ题: 有效的括号

片头 嗨! 小伙伴们,大家好! 我们又见面啦! 今天我们来一起尝试一下这道题目---有效的括号,准备好了吗? 我们开始咯! 说实话,我刚开始做这道题的时候也是一脸懵,怎么进行括号匹配呢? 别慌,我们一起画个图,分析分析括号匹配的过程~ 如下图所示,上方表示一个字符串数组,存放不…

深入剖析Tomcat(二) 实现一个简单的Servlet容器

现在开始《深入剖析Tomcat》第二章的内容&#xff0c;第一章中&#xff0c;我们编码实现了一个能正常接收HTTP请求并返回静态资源的Web容器&#xff0c;这一章开始引入Servlet的概念&#xff0c;使我们的服务能根据请求动态返回内容。 Servlet是什么&#xff1f; 这是首先要弄…

腾讯EdgeOne产品测评体验——开启安全防护,保障数据无忧

当今时代数字化经济蓬勃发展人们的生活逐渐便利&#xff0c;类似线上购物、线上娱乐、线上会议等数字化的服务如雨后春笋般在全国遍地生长&#xff0c;在人们享受这些服务的同时也面临着各式各样的挑战&#xff0c;如网络数据会不稳定、个人隐私容易暴露、资产信息会被攻击等。…

单链表链表专题

1 链表的概念 概念&#xff1a;链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表的结构跟⽕⻋⻋厢相似&#xff0c;淡季时⻋次的⻋厢会相应减少&#xff0c;旺季时⻋次的⻋厢会额外增加⼏节。只 需要…

MySQL表结构的操作

文章目录 1. 创建表2. 查看表3. 修改表4. 删除表 1. 创建表 create table table_name (field1 datatype,field2 datatype,field3 datatype )character set 字符集 collate 校验集 engine 存储引擎;field&#xff1a;列名datatype&#xff1a;列的类型character set&#xff1a…

zookeeper分布式应用程序协调服务+消息中间件kafka分布式数据处理平台

一、zookeeper基本介绍 1.1 zookeeper的概念 Zookeeper是一个开源的分布式的&#xff0c;为分布式框架提供协调服务的Apache项目。 是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域名服务、…