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)

相关推荐

  • css3中设置文本阴影的属性是(css3球体掉落动画带阴影效果)

    技术css3怎么实现图片阴影效果这篇文章主要讲解了“css3怎么实现图片阴影效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css3怎么实现图片阴影效果”吧!css3实

    攻略 2021年12月16日
  • iOS如何实现横竖屏幕设定

    技术iOS如何实现横竖屏幕设定小编给大家分享一下iOS如何实现横竖屏幕设定 ,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!iOS 6以下横竖屏

    攻略 2021年10月21日
  • 圾读音,垃和圾分开组词可以组什么词

    技术圾读音,垃和圾分开组词可以组什么词垃的组词如下圾读音:圪垃、
    圾的组词如下:
    搭圾、
    垃圾的相关组词如下:
    垃圾股、垃圾筒、敲坷垃、垃圾袋、坷垃头子、空间垃圾、垃圾填埋、白色垃圾、拉圾箱、垃圾堆、百圾碎、垃圾邮件、帕

    生活 2021年10月23日
  • hibernate中出现unknown entry问题怎么办

    技术hibernate中出现unknown entry问题怎么办小编给大家分享一下hibernate中出现unknown entry问题怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这

    攻略 2021年12月8日
  • 科颜氏白泥面膜用法,如何正确使用清洁面膜呢

    技术科颜氏白泥面膜用法,如何正确使用清洁面膜呢如何正确使用清洁面膜我个人认为皮肤清洁非常重要。今天科颜氏白泥面膜用法,我将讨论平时清洁面膜的日常使用。步骤:清洁后,涂上薄薄一层。沉重的房屋T区域和下巴可以略微加厚。此步骤

    生活 2021年10月19日
  • 动态SQL的拼接技巧有哪些

    技术动态SQL的拼接技巧有哪些这篇文章给大家介绍动态SQL的拼接技巧有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。常见的误解有: 1. 只用 ado.net ,无法进行动态 SQL 拼接。 2

    攻略 2021年12月1日