VTK图形图像开发进阶-01VTK基本概览

1.1 VTK的安装和编译

可以参考以下内容:

win10下在Qt中使用VTK(安装VS2017+安装QT5.9.9+编译配置VTK8.2.0)_qt配置vtk_HBybhy的博客-CSDN博客

1.2创建一个简单的VTK程序

1.在VTK/Examples目录里新建一个名为“Chap01”文件夹,输入内容为:

set(VTK_QT_CMAKE_DIR "D:\\QT\\5.14.0\\msvc2017_64\\lib\\cmake\\Qt5")
CMAKE_MINIMUM_REQUIRED(VERSION 3.27.0)
PROJECT(Chap01 )
FIND_PACKAGE(VTK REQUIRED)
INCLUDE(${VTK_USE_FILE})
ADD_EXECUTABLE(1.3_TestVTKInstall 1.3_TestVTKInstall.cpp)
TARGET_LINK_LIBRARIES(1.3_TestVTKInstall ${VTK_LIBRARIES} )

2.在CMakeList.txt同级目录下新建一个cpp文件,名为“1.3_TestVTKInstall.cpp”

#include<vtkRenderWindow.h>
#include<vtkSmartPointer.h>
 
int main(){
 
	vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
	renWin->Render();
	std::cin.get();
	return 0;
	
}

3.采用CMake软件编译

where is the source code 选择CMakeList.txt所在文件夹Chap01

where to build the binaries 在Chap01下创建Build文件

编译过程中的常见问题

不勾选Advanced的话,默认显示出来的只有两项

1)CMake

CMAKE_INSTALL_PREFIX 默认值为C:/Program Files/Chap01 (Chap01指的是在CMakeLists.txt里的project命令里所指定的工程名字)

2)Ungrouped Entries

VTK_DIR 指向VTK的编译目录(C:/Program Files/VTK/lib/cmake/vtk-8.2),也就是VTKConfig.cmake文件所在的完整路径

Qt5_DIR 需要指向Qt的路径

4.继续点击Configure,配置成功,点击Generate

5.点击Open Project,直接编译运行1.3_TestVTKInstall项目

常见错误

1)VS中出现以下错误的话

错误 LNK1104 无法打开文件“vtkRendering.lib” 1.3_TestVTKInstall D:\VTK\VTK-8.2.0\Examples\Chap01\Build\LINK 1

按照书上的CMakeLists.txt 代码最后一行是

TARGET_LINK_LIBRARIES(1.3_TestVTKInstall vtkRendering vtkCommon)

可能会出现上述问题,改成以下代码即可解决该问题

TARGET_LINK_LIBRARIES(1.3_TestVTKInstall ${VTK_LIBRARIES} )

2)找不到dll文件,需要将1.3_TestVTKInstall.cpp属性页中调试的工作目录改为D:\VTK\VTK-8.2.0\build\bin\Debug(也就VTK安装编译时创建的build下的Debug目录)

6.再次运行,可以出现以下运行界面,说明运行成功

1.3 代码解释

1.CMakeLists.txt

1)CMAKE_MINIMUM_REQUIRED(VERSION 3.27.0)

      该命令用于构建工程时所需的CMake版本要求,第一个参数VERSION是必需的关键字,且为大写。第二个参数为指定的CMake版本号。

2)PROJECT(Chap01 )

    用该命令指定工程名称,可指定工程支持的语言,支持语言的参数为可选,默认支持C/C++ 

3)FIND_PACKAGE(VTK REQUIRED)

    该命令用于搜索并加载外部工程,参数[REQUIRED]表示所要搜索的外部工程对本工程来说是必须的,如果没有搜索到,CMake会终止整个工程构建过程。以VTK为例,搜索的就是VTKConfig.cmake

4)INCLUDE(${VTK_USE_FILE})

     指定载入一个文件或模块,本例指定的是VTK模块,则会在CMAKE_MODULE_PATH中搜索VTK模块并载入,变量CMAKE_MODULE_PATH 指的是搜索CMake模块的目录,安装完CMake以后,在CMake的安装目录下(一般是C:Program Files (x86)CMake 2.8\)可以找到CMake已经定义的模块,路径为C:\Program Files (x86)lCMake 2.8\sharelcmake-2.8\Modules,在该目录下存在FindVTK.cmake文件,其中解释了变量VTK_USE_FILE的意义。

5)ADD_EXECUTABLE(1.3_TestVTKInstall 1.3_TestVTKInstall.cpp)

    定义这个工程会生成一个文件名为<name>的可执行文件,相关的源文件通过source1、source2、...、sourceN列出(如果工程里有多个源文件,源文件之间用空格隔开)。

6)TARGET_LINK_LIBRARIES(1.3_TestVTKInstall ${VTK_LIBRARIES} )

a.未找到vtkRendering.lib和vtkCommon.lib,应该和VTK版本有关,使用${VTK_LIBRARIES}代替

b.VTKConfig.cmake设置了VTK_LIBRARIES变量,包含了所有库文件,这样就不需要一一列出了

 2.1.3_TestVTKInstall.cpp

#include<vtkRenderWindow.h>
#include<vtkSmartPointer.h>

1.3_TestVTKInstall.cpp中使用了vtkRenderWindow和 vtkSmartPointer 这两个类,需要包含头文件

vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
	renWin->Render();
	std::cin.get();
	return 0;

a.第一行该方式使用智能指针定义vtkRenderWindow的对象,这是VTK实例化对象的基本用法

b.第二行调用vtkRenderWindow 里的方法显示并渲染VTK窗口

c.第三行没有特别意义,只是让程序暂停下来,等待接受用户的输入,目的是显示VTK窗口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值