精华内容
参与话题
问答
  • VTK

    2017-11-17 20:02:43
     ... VTK Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维...Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转
    

    http://blog.csdn.net/wanhongluli/article/details/77852843


    VTK

    Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过JavaTcl/TkPython各种语言使用vtk。通过VTK科学实验数据如建筑学、气象学、医学、生物学或者航空航天学,对体、面、光源等等的逼真渲染,从而帮助人们理解那些采取错综复杂而又往往规模庞大的数字呈现形式的科学概念或结果。

    目的

    本文目的是构建VTK+QT+VS的应用程序开发环境。

    QT版本:5.7.0

    VTK版本:7.1.1

    VS版本:2013VC12

    前置条件:Cmake在你的环境里已经安装好,QT5.7.0VS2013已经安装配置好,安装配置很简单,如果配置有问题可以参考http://blog.csdn.net/goodtomsheng/article/details/45719205

    VTK编译安装

    1.   下载VTK7.1.1http://www.vtk.org/download/,目前官网上最新版本是VTK8.0.1,保守起见我选择了VTK7.1.1版本,下载的文件VTK-7.1.1.zipVTKData-7.1.1.zip

    2.   创建一个叫vtk的目录(名字随便起),将CTK-7.1.1.zipVTKData-7.1.1.zip解压压到vtk目录下,并创建一个vtk_bin_x64的目录存放CMake后面生成的vtk工程,解压之后目录结构如图。




    3. 打开CMake-gui,Where is thesource code处选择VTK-7.1.1目录,Where to build the binaries处选择上面创建的vtk_bin_x64。点击Configure,在弹出的对话框中选择Visual Studio12 2013,点Finish。等Configue配置完成之后,有几个宏需要配置:

    BUILD_SHARED_LIBS – 指示编译共享库还是静态库,默认是编译选上的状态,我们要编译共享库,所以保持默认状态;

    BUILD_EXAMPLES – 指示编译示例工程,这里选上,方便学习使用。

    CMAKE_INSTALL_PREFIX – VTK完成编译完成之后,安装目录,binlibinclude等文件会被拷贝到它指定的目录下,x64编译默认安装目录是“C:/ProgramFiles /VTK”,但是VTK7.1.1貌似设置这个项不起作用,真正起作用的是设置这几个宏:INSTALL_BIN_DIRINSTALL_INC_DIRINSTALL_LIB_DIRINSTALL_MAN_DIRINSTALL_PKGCONFIG_DIR。我这里就按默认路径安装,如果你不是管理员账号,这里安装到默认目录下因为权限问题会失败。

    VTK_Group_Qt – QT支持,默认不支持,我们要支持QT集成开发,所以勾选上这一项。同样为了支持QT将宏Module_vtkGUISupportQtModule_vtkGUISupportQtOpenGL也勾选上。

    VTK_QT_VERSION – QT版本,我使用的QT5所以设置为5,这个选项在Configure之后是没有的,没关系,等后面点击Generate之后会报告Qt版本失败,这时候就可以找到这个选项并设置之后重新Generate就没问题了。

    VTK_DATA_STORE – Vtk数据存储位置,就是之前从VTK官网下下来的VTKData-7.1.1.zip,指定到解压的目录下两层,我这里是“E:\OpenSource\vtk\VTKData-7.1.1\VTK-7.1.1\.ExternalData”。

    Module_vtkGUISupportMFC – 指定产生和MFC框架集成的库,我这里用不着,所以不勾选。

    点击Add Entry,添加CacheEntryCMAKE_PREFIX_PATHValue设置为你的QT安装目录,我这里是“D:\Qt\Qt5.7.0\5.7\msvc2013_64”。

    上面这些选项设置完成之后点击Generate,这里会因为Qt的版本问题失败一次,正确设置VTK_QT_VERSION之后重新生成就没问题了。CMake工作完成之后的界面如下图,这里CMake的工作也就结束了。




    4.      Generate完成之后点击OpenProject打开配置好的VS2013工程。点击菜单生成 ->批生成 ,选择ALL_BUILD生成Debug版本和Release版本。生成完成之后点击彩当生成->批生成,选择INSTALL生成 Debug,这会将Debug版本的libbininlcude等都拷贝到前面设置的“C:/Program Files /VTK”目录下。

    5.      Qt Designer结合,将Release版本生成的bin路径(的路径是E:\OpenSource\vtk\vtk_bin_x64\bin\Release)下的QVTKWidgetPlugin.dlllib路径下的QVTKWidgetPlugin.libQVTKWidgetPlugin.exp拷贝到QT安装路径下的plugins\designer下(我的路径是D:\Qt\Qt5.7.0\5.7\msvc2013_64\plugins\designer,这里不要用Debug版本编译产生的文件,Qt Designer会读不出来。设置好之后再打开QtDesigner会看到QVTKWidget,如下图所示。



    6.      VS工程配置(vtk官方文档都是建议用CMake来管理工程,这里会介绍到不用CMake管理有些特别注意的地方)

    a)  新创建一个VS工程(可以是QT工程也可以是普通C++工程)

    b)  配置Debug-平台X64,设置头文件路径,和普通C++工程一样,我这里的路径是“C:\Program Files\VTK\include\vtk-7.1”,在连接器里设置库路径,我这里是“C:\Program Files\VTK\lib”。连接器里添加输入库,要添加的项比较多,这里一个好的方法是打开Examples下的一个工程,将它的工程配置里输入库直接拷贝过来。

    c)  这时候如果你把示例程序Cone的代码拷贝到当前工程下(Cone代码在下面给出),编译什么都通过了,运行的时候发现程序不能正常运行或者说是运行之后会直接挂掉,调试跟进之后发现vtkPolyDataMapper::New()返回的始终为NULL,而同样代码的Examples下的实例工程Cone就能正常运行和显示效果。分析Cone工程,发现它多了一些预处理指令,而这其中起关键作用的一个预处理指令就是:

    vtkRenderingCore_INCLUDE="E:/OpenSource/vtk/vtk_bin_x64/CMakeFiles/vtkRenderingCore_AUTOINIT_vtkInteractionStyle_vtkRenderingOpenGL2.h"

    解决思路1:我们同样添加这个预处理指令,可以把vtkRenderingCore_AUTOINIT_vtkInteractionStyle_vtkRenderingOpenGL2.h拷贝到vtkindluce目录下,再在自己的VS工程中添加预处理指令:

    vtkRenderingCore_INCLUDE="vtkRenderingCore_AUTOINIT_vtkInteractionStyle_vtkRenderingOpenGL2.h"

    解决思路2:看看这个预处理指令做了什么,打开.h文件发现它只定义了一条宏:

    #define vtkRenderingCore_AUTOINIT2(vtkInteractionStyle,vtkRenderingOpenGL2),其实就是初始化VTK模块,按照官方说明,可以在所有包含文件之前定义这个宏:

    #define vtkRenderingCore_AUTOINIT2(vtkInteractionStyle,vtkRenderingOpenGL2),这样也能解决问题。另外还可以,像下面这样,在代码最开始,所有头文件包含之前。

    #include "vtkAutoInit.h"

    VTK_MODULE_INIT(vtkRenderingOpenGL2);// VTK was built withvtkRenderingOpenGL2

    VTK_MODULE_INIT(vtkInteractionStyle);

    用上面的任何一种方法均能解决问题。更详细的解释可以参考http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Factories_now_require_defines。Cone工程运行的结果如下,图中圆锥体旋转几秒钟之后窗口自动关闭。

    编译好的库地址:https://pan.baidu.com/s/1pLMChzP wfd6


    1. #include "vtkConeSource.h"  
    2. #include "vtkPolyDataMapper.h"  
    3. #include "vtkRenderWindow.h"  
    4. #include "vtkCamera.h"  
    5. #include "vtkActor.h"  
    6. #include "vtkRenderer.h"  
    7. int main()  
    8. {  
    9.   // Next we create an instance of vtkConeSource and set some of its  
    10.   // properties. The instance of vtkConeSource "cone" is part of a  
    11.   // visualization pipeline (it is a source process object); it produces data  
    12.   // (output type is vtkPolyData) which other filters may process.  
    13.   vtkConeSource *cone = vtkConeSource::New();  
    14.   cone->SetHeight( 3.0 );  
    15.   cone->SetRadius( 1.0 );  
    16.   cone->SetResolution( 10 );  
    17.   // In this example we terminate the pipeline with a mapper process object.  
    18.   // (Intermediate filters such as vtkShrinkPolyData could be inserted in  
    19.   // between the source and the mapper.)  We create an instance of  
    20.   // vtkPolyDataMapper to map the polygonal data into graphics primitives. We  
    21.   // connect the output of the cone souece to the input of this mapper.  
    22.   vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();  
    23.   coneMapper->SetInputConnection( cone->GetOutputPort() );  
    24.   // Create an actor to represent the cone. The actor orchestrates rendering  
    25.   // of the mapper's graphics primitives. An actor also refers to properties  
    26.   // via a vtkProperty instance, and includes an internal transformation  
    27.   // matrix. We set this actor's mapper to be coneMapper which we created  
    28.   // above.  
    29.   vtkActor *coneActor = vtkActor::New();  
    30.   coneActor->SetMapper( coneMapper );  
    31.    // Create the Renderer and assign actors to it. A renderer is like a  
    32.   // viewport. It is part or all of a window on the screen and it is  
    33.   // responsible for drawing the actors it has.  We also set the background  
    34.   // color here.  
    35.   vtkRenderer *ren1= vtkRenderer::New();  
    36.   ren1->AddActor( coneActor );  
    37.   ren1->SetBackground( 0.1, 0.2, 0.4 );  
    38.   // Finally we create the render window which will show up on the screen.  
    39.   // We put our renderer into the render window using AddRenderer. We also  
    40.   // set the size to be 300 pixels by 300.  
    41.   vtkRenderWindow *renWin = vtkRenderWindow::New();  
    42.   renWin->AddRenderer( ren1 );  
    43.   renWin->SetSize( 300, 300 );  
    44.   // Now we loop over 360 degrees and render the cone each time.  
    45.   int i;  
    46.   for (i = 0; i < 360; ++i)  
    47.   {  
    48.     // render the image  
    49.     renWin->Render();  
    50.     // rotate the active camera by one degree  
    51.     ren1->GetActiveCamera()->Azimuth( 1 );  
    52.   }  
    53.   
    54.   //  
    55.   // Free up any objects we created. All instances in VTK are deleted by  
    56.   // using the Delete() method.  
    57.   //  
    58.   cone->Delete();  
    59.   coneMapper->Delete();  
    60.   coneActor->Delete();  
    61.   ren1->Delete();  
    62.   renWin->Delete();  
    63.   
    64.   return 0;  
    65. }  
    展开全文
  • vtk

    千次阅读 2013-06-24 17:09:17
    目录 简介 特点 ...Vtk(visualization toolkit)是一个...Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过J
    
    

    编辑本段简介

    Vtk(visualization toolkit)是一个开放资源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk。 Vtk几乎可以在任何一个基于Unix的平台上操作,以及Windows 95/98/NT/2000/XP。[1]
    视觉化工具函式库(VTK,Visualization Toolkit)是一个开放源码,跨平台、支持并行处理(VTK曾用于处理大小近乎1个Petabyte的资料,其平台为美国Los Alamos国家实验室所有的具1024个处理器之大型系统)的图形应用函式库。2005年实曾被美国陆军研究实验室用于即时模拟俄罗斯制反导弹战车ZSU23-4受到平面波攻击的情形,其计算节点高达2.5兆之多。

    编辑本段特点

    它以用户使用的方便性和灵活性为主要原则,具有如下的特点:
    1) 具有强大的三维图形功能。Visualization Toolkit 既支持基于体素Voxel-basedrendering 的体绘制Volume Rendering又保留了传统的面绘制,从而在极大的改善可视化效果的同时又可以充分利用现有的图形库和图形硬件
    2) Visualization Toolkit 的体系结构使其具有非常好的流streaming和高速缓存caching 的能力,在处理大量的数据时不必考虑内存资源的限制
    3) Visualization Toolkit 能够更好的支持基于网络的工具比如Java 和VRML 随着Web 和Internet 技术的发展VisualizationToolkit 有着很好的发展前景
    4) 能够支持多种着色如OpenGL 等
    5) Visualization Toolkit 具有设备无关性使其代码具有良好的可移植性
    6) Visualization Toolkit 中定义了许多宏,这些宏极大的简化了编程工作并且加强了一致的对象行为
    7) Visualization Toolkit 具有更丰富的数据类型,支持对多种数据类型进行处理
    8) 既可以工作于Windows 操作系统又可以工作于Unix 操作系统极大的方便了用户。

    编辑本段历史

    VTK最早是作为Prentice Hall出版的"The Visualization Toolkit: An Object-Oriented Approach to 3DGraphics"一书的附件释出,该书及其软件是由奇异研发部 Corporate R&D的三位研究人员:Will Schroeder、Ken Martin与Bill Lorensen用其闲暇时间合作,在获得奇异公司的许可下完成的(故该软件的授权完全是由这三位决定),由于其开放源码式的授权,该书一上市后,VTK 很快地建立了其使用及开发者社群,同时,奇异与其他数间公司也开始提供对VTK的支援。 Will Schroeder和Ken Martin在1998年时离开奇异,创立了Kitware公司。
    有了Kitware的资金挹注,VTK社群快速地成长,其在学术研究及商业应用的领域受到重用,例如Slicer 生物医学计算软件使用VTK作为其核心,许多讨论研究VTK的IEEE论文出现。VTK也是许多大型研究机构如Sandia, Los Alamosn及Livermore国家实验室与Kitware的合作基础。这些研究中心使用VTK来作为视觉化资料的基础处理工具。 VTK亦是新创的美国国家卫生研究院所规画,作为开发未来计算工具之基石的美国国家医学影像计算合作联盟(National Alliance for Medical Image Computing, NA-MIC)的关键计算工具。

    编辑本段应用

    VTK是一个开放源码、自由获取的软件系统,全世界的数以千计的研究人员和开发人员用它来进行3D计算机图形,图像处理,可视化。VTK包含一个c++类库,众多的翻译接口层,包括Tcl/Tk,Java,Python。 Visualization Toolkit 是一个用于可视化应用程序构造与运行的支撑环境,它是在三维函数库OpenGL 的基础上采用面向对象的设计方法发展起来的,它将我们在可视化开发过程中会经常遇到的细节屏蔽起来,并将一些常用的算法封装起来。比如 Visualization Toolkit 将我们在表面重建中比较常见的MarchingCubes 算法封装起来,以类的形式给我们以支持,这样我们在对三维规则点阵数据进行表面重建时就不必再重复编写MarchingCubes 算法的代码,而直接使用Visualization Toolkit 中已经提供的vtkMarchingCubes 类。 Visualization Toolkit 是给从事可视化应用程序开发工作的研究人员提供直接的技术支持的一个强大的可视化开发工具

    编辑本段应用领域

    通过VTK将科学实验数据建筑学气象学医学生物学或者航空航天学,对体、面、光源等等的逼真渲染,从而帮助人们理解那些采取错综复杂而又往往规模庞大的数字呈现形式的科学概念或结果。美国计算机科学家布鲁斯·麦考梅克在其1987年关于科学可视化的定义之中,首次阐述了科学可视化的目标和范围:“利用计算机图形学来创建视觉图像,帮助人们理解科学技术概念或结果的那些错综复杂而又往往规模庞大的数字表现形式”。
    核医学成像:心脏SPECT图像(短轴视图)与心脏三维模型的融合
    上图中,将仪器采集的实验数据通过计算机模拟成像,有助于发现医学问题。在航空航天方面,模拟飞行器轨道实验、风洞实验等,通过计算机模拟减少实际实验次数,可以降低成本,并可以多次实验找出问题。

    编辑本段获得

    由于vtk是开源的,我们可以从其官网获得最新版本,最新版本为5.10.0(2012.5.16 Available)。当然如果是初学的话也可以用以前的版本,视自己的电脑的配置来下载相应的版本进行安装。
    参考资料
    开放分类:
    数据可视化 , vtk
    展开全文
  • vtk VtkButtonWidget

    2020-10-23 19:17:28
    vtk VtkButtonWidget QT vtk 结果示例,四视图,适合初学者。3D button
  • VTK8.0 and VTK8.1

    2018-11-05 18:32:02
    压缩文件中有8.0和8.1两个版本,均为cmake编译,pcl中的vtk没有支持QT可以该该包替换。前者有debug和release两个版本,后者只有release的。
  • 最近学习VTK所找到的一些资料。包括VTK中文手册(中文VTK User's Guide(带书签)),vtk的ppt,VTK学习笔记,示例程序等等
  • VTK5.10.1 zip

    2019-09-23 20:52:48
    VTK5.10.1VTK5.10.1
  • vtk data vtk数据例子

    2012-10-29 09:48:21
    vtk data vtk数据例子
  • VTK Cameras

    2018-11-20 17:05:11
    介绍vtk相机的例子代码【本篇博客记录的是相机作用是什么,相机的参数,以及如何控制相机和实际中如何使用?】
  • vtk纹理映射

    2017-10-16 23:39:11
    vtk

    先上图
    这里写图片描述

    和osg差不多
    这里写图片描述

    
    int main(int argc, char* argv[])
    {
        vtkSmartPointer<vtkPNGReader> reader = vtkSmartPointer<vtkPNGReader>::New();
        reader->SetFileName("earth_geology_bath.png");
        reader->Update();
    
        vtkSmartPointer<vtkTexture> texture = vtkSmartPointer<vtkTexture>::New();
        texture->SetInputConnection(reader->GetOutputPort());
        texture->InterpolateOn();
    
        vtkSmartPointer<vtkSphereSource> sphere = vtkSmartPointer<vtkSphereSource>::New();
        sphere->SetThetaResolution(100);
        sphere->SetPhiResolution(100);
        sphere->SetRadius(1);
        sphere->Update();
    
        vtkSmartPointer<vtkTextureMapToSphere> map_to_sphere = vtkSmartPointer<vtkTextureMapToSphere>::New();
        map_to_sphere->SetInputConnection(sphere->GetOutputPort());
        map_to_sphere->PreventSeamOn();
    
        vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
        mapper->SetInputConnection(map_to_sphere->GetOutputPort());
    
        vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
        actor->SetMapper(mapper);
        actor->SetTexture(texture);
    
        vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
        renderer->AddActor(actor);
        renderer->SetBackground(0.0, 0.0, 0.0);//black
    
        vtkSmartPointer<vtkRenderWindow> render_window = vtkSmartPointer<vtkRenderWindow>::New();
        render_window->SetWindowName("Texture");
        render_window->AddRenderer(renderer);
    
        vtkSmartPointer<vtkRenderWindowInteractor> render_window_interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
        render_window_interactor->SetRenderWindow(render_window);
        render_window_interactor->Initialize();
    
        vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
        render_window_interactor->SetInteractorStyle(style);
    
        render_window->Render();
        render_window_interactor->Start();
    
        return EXIT_SUCCESS;
    }
    
    展开全文
  • VTK.zip+VTK8.2Data

    2019-12-05 22:38:21
    PCL的VTK8.2,还顺带提供它的Data,可以使用Cmake编译,搭配自己的All-in-One的PCL文件。
  • VTK学习-vtkCamera

    2017-11-29 15:51:26
    VTK学习-vtkCamera

    写在前面:

    这篇博客主要记录书中有关于vtkCamera的相关内容整理。同样也比较基础,只是希望梳理一下,慢慢学习。

    vtkCamera基本概念:

    相机的概念就就当于观看舞台上演员演出的眼睛。观众可以位于不同的地方、不同角度观看表演,从而得到不同的观感。那么相机也是,VTK中利用vtkCmaera来表示相机,负责将三维场景投影到二维平面,最常用的就是电脑屏幕。相机投影相关的要素可如下图表示:


    图1.相机vtkCamera投影示意图

    那么相机相关的要素主要有:

    1. 相机位置。通过vtkCamera::SetPosition()函数设置相机的位置。传入为一个三维坐标位置。
    2. 相机焦点。通过vtkCamera::SetFocusPoint()函数设置焦点位置。默认位置在世界坐标系的原点。
    3. 朝上方向。通过vtkCamera::SetViewUp()函数设置相机朝上方向。传入一个三维(x,y,z)向量。也就表示从(0,0,0)到(x,y,z)的向量。默认为(0,1,0)。前三个确定了相机的实际方向。视图也通过这三个参数确定。
    4. 投影方向。相机位置到相机焦点的向量方向即为投影方向。可以通过vtkCamera::GetDirectionOfPrijection()函数获得该向量。
    5. 投影方法。投影方法有两种:一、正交投影,Orthographic Projection,也叫平行投影,Parallel Projection,进入相机的光线与投影方向平行。二、透视投影,Perspective Projection,进入相机的光纤相交于一点。这种投影方式会产生近大远小的视觉习惯。。可以通过vtkCamera::SetParallelProjection(int flag)函数来设定相机采用那几种投影方法。
    6. 视角。View Angle。默认视角大小为30°。可以通过vtkCamera::SetViewAngle()来设置。
    7. 前后裁剪平面。裁剪平面与投影方向相交,一般与投影方向垂直。注意,只有在前后裁剪平面之间的Actor才可见(本科好像在应用光学中学过这个)。可以通过vtkCamera::SetClippingRange(double dNear, double dFar)函数设置,前一个参数是离相机近的,后一个参数是离相机远的平面。默认参数范围是(0.1,1000)。

    更多详细函数可以参考VTK官方文档:vtkCamera Class Reference

    vtkCamera常用函数:

    常用的相机属性设定方法在前面说的比较详细了。这里说一下创建和添加Camera的方法。
    在使用vtkCamera之前需要包含相关头文件:

    #include <vtkCamera.h>

    利用vtkSmartPointer创建vtkCamera:

    vtkSmartPointer<vtkCamera>myCamera=vtkSmartPointer<vtkCamera>::New();

    将相机设置到渲染场景中:

    renderer->SetActiveCamera(myCamera);

    通过vtkRenderer::SetActiveCamera(vtkCamera *)函数完成设置。
    除此之外,vtkCamera还提供了许多的控制相机运动的函数,比如Dolly(),Roll(),Azimuth(),Yaw(),Elevation(),Pitch()和Zoom()。在我之前提供的vtkCamera文档链接中,有关于这些函数的使用方法。但是具体使用方法与使用效果我还不是特别清楚。因为根据书中要下载vtk-5.10.0-win32-x86.exe这个程序,我没找到连接。所以只能参考书中的参考图了。


    图2.相机运动方向示意图
    这里写图片描述

    vtkCamera使用详例:

    #include <vtkRenderWindow.h>
    #include <vtkSmartPointer.h>
    #include <vtkRenderer.h>
    #include <vtkRenderWindowInteractor.h>
    #include <vtkInteractorStyleTrackballCamera.h>
    #include <vtkCylinderSource.h>
    #include <vtkPolyDataMapper.h>
    #include <vtkActor.h>
    #include <vtkLight.h>
    #include <vtkCamera.h>
    
    int main(){
        vtkSmartPointer<vtkCylinderSource>cylinder=
        vtkSmartPointer<vtkCylinderSource>::New();
        cylinder->SetHeight(3.0);
        cylinder->SetRadius(1.0);
        cylinder->SetResolution(10);
    
        vtkSmartPointer<vtkPolyDataMapper>cylinderMapper=
        vtkSmartPointer<vtkPolyDataMapper>::New();
        cylinderMapper->SetInputConnection(cylinder->GetOutputPort());
    
        vtkSmartPointer<vtkActor>cylinderActor=vtkSmartPointer<vtkActor>::New();
        cylinderActor->SetMapper(cylinderMapper);
        //cylinderActor->SetTexture(texture);
    
        vtkSmartPointer<vtkRenderer>renderer=vtkSmartPointer<vtkRenderer>::New();
        renderer->AddActor(cylinderActor);
        renderer->SetBackground(0.1,0.2,0.4);
    
        vtkSmartPointer<vtkRenderWindow>renwin=vtkSmartPointer<vtkRenderWindow>::New();
        renwin->AddRenderer(renderer);
        renwin->SetSize(640,480);
        renwin->Render();
        renwin->SetWindowName("RenderCylinder-Lights");
    
        vtkSmartPointer<vtkRenderWindowInteractor>iren=vtkSmartPointer<vtkRenderWindowInteractor>::New();
        iren->SetRenderWindow(renwin);
    
        vtkSmartPointer<vtkInteractorStyleTrackballCamera>style=vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
        iren->SetInteractorStyle(style);
    
        vtkSmartPointer<vtkLight>myLight=vtkSmartPointer<vtkLight>::New();
        myLight->SetColor(0,1,0);
        myLight->SetPosition(0,0,1);
        myLight->SetFocalPoint(renderer->GetActiveCamera()->GetFocalPoint());
        renderer->AddLight(myLight);
    
        vtkSmartPointer<vtkLight> myLight2 =
        vtkSmartPointer<vtkLight>::New();
        myLight2->SetColor(0,1,1);
        myLight2->SetPosition(0,0,-1);
        myLight2->SetFocalPoint(renderer->GetActiveCamera()->GetFocalPoint());
        renderer->AddLight(myLight2);
    
        vtkSmartPointer<vtkCamera>myCamera=vtkSmartPointer<vtkCamera>::New();
        myCamera->SetClippingRange(0.0475,2.3786);
        myCamera->SetFocalPoint(0.0573,-0.2134,-0.0523);
        myCamera->SetPosition(2,-2,-2);
        myCamera->SetViewUp(-0.2234,0.9983,0.0345);
        renderer->SetActiveCamera(myCamera);
    
        iren->Initialize();
        iren->Start();
    
        return EXIT_SUCCESS;
    }

    运行结果如下图所示:
    这里写图片描述

    感觉对于具体的相机参数设置不太熟练,所以试了几次得到这样一个图。仍然可以调整。

    展开全文
  • VTK官方文档->自制CHM, VERSION=7.1, 纯手工,可用,赚点辛苦费,谢谢 VTK官方文档->自制CHM, VERSION=7.1, 纯手工,可用,赚点辛苦费,谢谢 VTK官方文档->自制CHM, VERSION=7.1, 纯手工,可用,赚点辛苦费...
  • VTK实战

    2019-10-31 20:11:47
    VTK实战
  • vtkActor.h> #include <vtkLookupTable.h> #include <vtkPolyDataMapper.h> #include <vtkProperty.h> #include <vtkRenderer.h> #include <vtkRenderWindow.h> #in...
  • Study-VTKvtkWidget

    2020-03-22 12:32:24
    vtk交互之 vtkWidget1 vtk交互介绍2 vtkWidget继承关系图3 创建vtkWidget4 vtkWidget详细使用方法 1 vtk交互介绍   我们在与图形/图像交互时,一般有两种方式:      看的见的交互、和看不见的交互。    ...
  • VTK入门

    万次阅读 2018-10-31 10:44:12
    VTK是什么? VTK,全称是Visualization Toolkit,即可视化工具包。是一个开源、跨平台、可自由获取、支持并行处理的图形应用函数库。 VTK最早是作为Prentice Hall在1993年出版的《The Visualization Toolkit: An ...
  • VTK学习-VTK管线

    2017-12-05 19:56:28
    VTK学习-VTK管线 写在前面:希望通过这篇博客,对书中关于VTK管线的内容做一个简要的整理。
  • VTK——8.1.1

    2018-07-18 13:25:10
    VTK8.1.1 有VTK官网下载,由于国内网站原因该文件为下载资源。
  • 初识VTK

    2020-03-04 16:05:21
    经过调研,VTK容易上手而且效果很好。于是乎,开启了痛苦的VTK学习之路。 这次准备在一个qt开发的系统中集成vtk做的三维可视化的相关内容。先到官网上去了解一下vtk。 官网链接:https://vtk.org/ 官网上有大量的...
  • VTK——7.1.1

    2018-07-18 13:07:45
    VTK7.1.1 有VTK官网下载,由于国内网站原因该文件为下载资源。
  • <div><p>I use vtkPolyDataNormals class in VTK, but i dosen't find this in Vtk.js。 I want to know difference of VTK and vtk.js. Please forgive me for my poor English. thanks!</p><p>该提问...
  • 安装vtk

    2018-09-28 10:19:35
    git clone https://gitlab.kitware.com/vtk/vtk.git VTK cd VTK git checkout v7.1.0 cd ..
  • #include <...vtkPolyData.h> #include <vtkImageData.h> #include <vtkSphereSource.h> #include <vtkMetaImageWriter.h> #include <vtkPolyDataToImageStencil.h> #includ...
  • 安装VTK

    2020-05-01 17:18:50
    vs主要是用来编译VTK,最后生成我们想要的库文件,头文件之类的。 已安装好的Qt,建议版本5.9或5.12 cmake-gui,如未安装可参照下面的教程。cmake是用来把下载下来的VTK源码配置生成vs的解决方案的,好让vs去打开...
  • VTK vtkCustomAnimationCue

    2020-03-15 17:48:38
    #include "vtkAnimationCue.h...#include "vtkRenderWindow.h" #include "vtkSphereSource.h" // #include "vtkRenderWindowInteractor.h" #include "vtkRenderWindow.h" #include "vtkRenderer.h" #include "vt...
  • VTK SelectAnActor

    2020-08-12 21:34:13
    https://vtk.org/Wiki/VTK/Examples/Cxx/Interaction/SelectAnActor SelectAnActor.cxx // An highlighted block #include <vtkSmartPointer.h> #include <vtkActor.h> #include <vtkCellArray.h>...
  • VTK: VTK Error 问题集

    2020-07-11 15:50:27
    总结一下VTK使用过程中的一些错误: 1、非编译错误 ​ 这部分错误并不是因为你错误使用VTK类或者是逻辑问题而导致的错误,而是因为缺失一些初始化的头文件而导致的错误 ​ 需要在main函数中先添加初始化头文件: #...

空空如也

1 2 3 4 5 ... 20
收藏数 8,599
精华内容 3,439
关键字:

VTK