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)

相关推荐

  • express框架

    技术express框架 express框架Express框架
    Express简化了关于NodeJS应用的开发
    官网地址:https://www.expressjs.com.cn/使用npm instal

    礼包 2021年10月19日
  • 污的句子,很乖很奇怪很污很可爱之类的句子

    技术污的句子,很乖很奇怪很污很可爱之类的句子1、他大约有十三、四岁。又黑又胖的小脸上污的句子,嵌着一个尖尖的翘鼻子。长长的头发,好久没理了。浓浓的眉毛下闪着一对大眼睛,乌黑的眼珠挺神气地转来转去。 2、树丛被拨开了,一个

    生活 2021年10月29日
  • 犬字旁的字有哪些字,带"犭"偏旁的字大多与什么有关

    技术犬字旁的字有哪些字,带"犭"偏旁的字大多与什么有关带“犭”偏旁的字大多与动物有关犬字旁的字有哪些字,如:猫、狗、猪。一、猫:māo máo 1.释义:[ māo ] (1)哺乳动物,面呈圆形,脚有利爪,行动敏捷

    生活 2021年10月21日
  • pagerank算法原理举例子(pagerank算法详解)

    技术PageRank算法如何给网页排名PageRank算法如何给网页排名,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1,PageRank 算法原理Page

    攻略 2021年12月23日
  • opencv函数详解(opencv中形态学操作函数)

    技术OpenCV基本图形绘制函数有哪些本篇内容主要讲解“OpenCV基本图形绘制函数有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“OpenCV基本图形绘制函数有哪些”吧

    攻略 2021年12月13日
  • Intellij IDEA智能补全的方法有哪些

    技术Intellij IDEA智能补全的方法有哪些本篇内容介绍了“Intellij IDEA智能补全的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情

    攻略 2021年11月16日