VTK中常用控件介绍及如何实现圆锥体绘制

技术VTK中常用控件介绍及如何实现圆锥体绘制VTK中常用控件介绍及如何实现圆锥体绘制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。利用 VT

在VTK常见控件的介绍以及如何实现圆锥体的绘制,很多新手都不是很清楚。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。

使用VTK绘制对象时,通常使用以下组件。为了加深理解,VTK把一个物体的渲染过程比作一场表演(真的很生动):

vtkRenderWindow :绘图窗口相当于演出的舞台场地;

VTK渲染器——涉及灯光、摄像机和演员的绘制过程;相当于舞台上的整体表演效果;

VtkLight—光源用于照亮场景;

VTK相机——定义场景的视角、焦距和视觉属性,相当于观众的视野;

VTKACTOR-场景中渲染的对象,其属性及其在场景中的位置,以及在绘图中显示的道具;相当于表演的演员和道具;

VtkProperty修改vtkActor的属性,包括颜色、透明度和灯光(反射和折射效果)的属性,以及性能中使用的灯光。

VTKMapper——VTKATOR的几何映射,只能通过将vtkAcor转化为几何属性来绘制;多个vtkActor可以设置同一个映射器。

下图是VTK对绘图效果中每个组件的注释:

VTK中常用控件介绍及如何实现圆锥体绘制

绘制对象时,需要提供源数据,对数据进行一系列操作(读取、格式转换、Filter图像处理),然后将数据转换为vtkMapper。vtkActor设置vtkMapper后,传输到vtkRendener(绘图仪)。

代码实现时,如果没有定义vtkLight和vtkCamera,程序会自动创建这两个组件。

总体而言,VTK的数据管道流程如下:

VTK中常用控件介绍及如何实现圆锥体绘制

下面,在VTK提供的vtkConeSource.h类的帮助下,我们使用代码绘制一个圆锥体。

#includevtkActor.h

#includevtkSmartPointer.h

# includevtkPolyDataMapper.h

#includevtkConeSource.h

#includevtkRenderer.h

#includevtkRenderWindow.h

#includevtkCamera.h

#includevtkNamedColors.h

#包含“vtkAutoInit.h”

VTK _模块_初始化(vtkrenderingpeng L2);//vtkwasubillwithvtkrendingpeng 2

VTK _模块_初始化(vtkInteractionStyle);

intmain()

{

vtksmarttorvtkconesourcene=vtksmarttorvtkconesource : new();

vtksmarttorvtknamedcorks=vtksmarttorvtknamedcorks 3360: new();

锥形

SetHeight(3.0);//Cone Height
    Cone->SetRadius(1.0);//Cone Radius
    Cone->SetResolution(9);//Cone faces

    vtkSmartPointer<vtkPolyDataMapper> coneMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    coneMapper->SetInputConnection(Cone->GetOutputPort());//Mapper data

    vtkSmartPointer<vtkActor> coneActor = vtkSmartPointer<vtkActor>::New();
    coneActor->SetMapper(coneMapper);

    vtkSmartPointer<vtkRenderer> coneRender = vtkSmartPointer<vtkRenderer>::New();
    coneRender->AddActor(coneActor);
    coneRender->SetBackground(colors->GetColor3d("MidnightBlue").GetData());//Bachground color

    vtkSmartPointer<vtkRenderWindow> renWindow = vtkSmartPointer<vtkRenderWindow>::New();
    renWindow->AddRenderer(coneRender);

    renWindow->SetSize(300, 300);//Size of Window;

    for (auto i = 0; i < 360; ++i)
    {
        //render the image;
        renWindow->Render();
        //rotate the active camera by one degree
        coneRender->GetActiveCamera()->Azimuth(1);
    }

    getchar();
    return EXIT_SUCCESS;

}

 

最终的效果如下:

VTK中常用控件介绍及如何实现圆锥体绘制
 

代码中对圆锥设置了几个参数:高度,底部半径,及包含面的个数(圆锥涉及的面的总个数);

VTK 除了头文件 vtkConeSource.h 提供圆锥数据以外,还有椭圆,正方体,圆环等数据对象。

VTK中常用控件介绍及如何实现圆锥体绘制
 

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/93994.html

(0)

相关推荐

  • 归并排序和逆序对数量

    技术归并排序和逆序对数量 归并排序和逆序对数量归并排序
    #includeiostreamusing namespace std;
    const int N = 100010;
    int q[N];
    int

    礼包 2021年11月5日
  • 幂的乘方50道计算题,初一解方程计算题有过程答案

    技术幂的乘方50道计算题,初一解方程计算题有过程答案1。某中学修整草场,如果让初一学生单独工作,需要7。5小时完成;如果让初二学生单独做,需要5小时完成。如果让初一幂的乘方50道计算题、初二学生一起工作1小时,再由初二学

    生活 2021年10月22日
  • 如何使用mysqldump备份异机恢复数据库

    技术如何使用mysqldump备份异机恢复数据库这篇文章给大家分享的是有关如何使用mysqldump备份异机恢复数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用mysqldump备份异

    攻略 2021年11月2日
  • MVC3如何自定义注解验证字符长度

    技术MVC3如何自定义注解验证字符长度这篇文章主要介绍MVC3如何自定义注解验证字符长度,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!自定义注解(验证字符长度)需要继承ValidationAttr

    攻略 2021年11月23日
  • 减肥最快的运动是什么,有哪些能快速减肥的运动

    技术减肥最快的运动是什么,有哪些能快速减肥的运动请问下减肥最快的运动是什么减肥最快的运动是什么?减肥最快的运动就是你运动起来坚持下去,很快就能瘦。常见的运动方式,快走,跑步,骑单车,跳绳,波比跳。游泳也是效果非常好的减肥

    生活 2021年10月24日
  • bytes最大值(数据类型的字节大小)

    技术为什么bytes的值比maxbytes的值要大这篇文章主要讲解了“为什么bytes的值比maxbytes的值要大”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“为什么b

    攻略 2021年12月22日