VTK建立应用程序的基本过程

         现在读研一,还没有开学便被导师召到学校进行学习,由于导师主要是搞医学图像方面的,为了能够让我尽快提高相关技能,便让我学习VTK。作为一个小白,也是刚接触到VTK,所以有关对VTK的学习皆是本人从相关英文资料及其它资料整理过来的,不妥之处还望各位读者给予谅解。

关于VTK建立应用程序的基本过程:

1)读取/生成数据

2)过滤数据

3)绘制图形

4)交互操作

  关于VTK 如何读取/生成数据,其提供了两种获取数据的方法,一是读取存在的数据文件(如格式为.tcl的数据文件);另一种是通过算法或者数学表达式生成数据。在可视化流水线中起始节点对象被称为源对象,其中源对象又可分为程序源对象、读取源对象。通过数学方法生成数据的对象被称为程序源对象,而从数据文件中读取数据的对象被称为读取源对象。

关于程序源对象可以用下面的实例进行解释,该实例也是VTK的经典实例即绘制一个立体的圆锥图形。

代码源于http://www.vtk.org/Wiki/VTK/Examples/Cxx/GeometricObjects/Cone

#include "vtkConeSource.h"
#include "vtkPolyDataMapper.h"
#include "vtkRenderWindow.h"
#include "vtkCamera.h"
#include "vtkActor.h"
#include "vtkRenderer.h"

int main()
{

  vtkConeSource *cone = vtkConeSource::New();
  cone->SetHeight( 3.0 );
  cone->SetRadius( 1.0 );
  cone->SetResolution( 10 );
  vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
  coneMapper->SetInputConnection( cone->GetOutputPort() );


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


  vtkRenderer *ren1= vtkRenderer::New();
  ren1->AddActor( coneActor );
  ren1->SetBackground( 0.1, 0.2, 0.4 );

 
  vtkRenderWindow *renWin = vtkRenderWindow::New();
  renWin->AddRenderer( ren1 );
  renWin->SetSize( 300, 300 );

 
  int i;
  for (i = 0; i < 360; ++i)
    {
    renWin->Render();
    ren1->GetActiveCamera()->Azimuth( 1 );
    }
 
  cone->Delete();
  coneMapper->Delete();
  coneActor->Delete();
  ren1->Delete();
  renWin->Delete();
  return 0;
}

在这个实例中,映射器对象是流水线和图形对象的借口,流水线主要作用于对数据的处理,图形对象主要用于绘制数据。

关于读取源对象:不多做简介,主要是使用vtkSTLReader类的SetFileName()方法进行读取数据文件。Tip:VTK读取源对象不能够感觉数据文件的变化,所以必须调用Modified方法,保证数据文件变化时,让流水线重新执行。

关于对VTK的学习后面还有很长的路要走,重要的是多实践,多上机编程,多看实例,多总结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值