VTK-VTK基本概念

前言

本文的主要目的是想通过一个例子来了解VTK的一些基本概念
程序参考链接VTK基本概念之主要对象
  
  

显示柱体的VTK程序

CMakeLists.txt文件代码

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(RenderCylinder)

FIND_PACKAGE(VTK REQUIRED)

INCLUDE(${VTK_USE_FILE})

ADD_EXECUTABLE(RenderCylinderAndCone RenderCylinderAndCone.cpp)

TARGET_LINK_LIBRARIES(RenderCylinderAndCone ${VTK_LIBRARIES})

  
RenderCylinderAndCone.cpp代码

#include <vtkSmartPointer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkProperty.h>

int main()
{
    vtkSmartPointer<vtkCylinderSource> cylinder = 
        vtkSmartPointer<vtkCylinderSource>::New();
    //设置圆柱的高度
    cylinder->SetHeight( 3.0 );
    //设置圆柱的直径
    cylinder->SetRadius( 1.0 );
    //设置圆柱有多少个侧面
    cylinder->SetResolution( 10 ); 
    
    vtkSmartPointer<vtkConeSource> Cone = vtkSmartPointer<vtkConeSource>::New();
    //设置圆锥的高度
    Cone->SetHeight( 7.0 );
    //设置圆锥的直径
    Cone->SetRadius( 1.0 );
    //设置圆锥有多少个侧面
    Cone->SetResolution( 6 );

    //===================圆柱的
    vtkSmartPointer<vtkPolyDataMapper> cylinderMapper = 
    vtkSmartPointer<vtkPolyDataMapper>::New();
    cylinderMapper->SetInputConnection( cylinder->GetOutputPort() ); 

    vtkSmartPointer<vtkActor> cylinderActor = 
        vtkSmartPointer<vtkActor>::New();
    cylinderActor->SetMapper( cylinderMapper );
    //设置圆柱的颜色
    cylinderActor->GetProperty()->SetColor(1.0, 0.0, 0.0);
    
    //===================圆锥的
    vtkSmartPointer<vtkPolyDataMapper> coneMapper =     vtkSmartPointer<vtkPolyDataMapper>::New();
	coneMapper->SetInputConnection(Cone->GetOutputPort());//Mapper data
   
    vtkSmartPointer<vtkActor> coneActor = vtkSmartPointer<vtkActor>::New();
	coneActor->SetMapper(coneMapper);
	//设置圆锥的颜色
    coneActor->GetProperty()->SetColor(0, 1.0, 0.0);

    //==================渲染器
    vtkSmartPointer<vtkRenderer> renderer = 
        vtkSmartPointer<vtkRenderer>::New();
    //将圆柱actor添加到渲染器中
    renderer->AddActor( cylinderActor );
    //将圆锥actor添加到渲染器中
    renderer->AddActor( coneActor );
    //设置渲染场景的背景颜色 也就是窗口的颜色
    renderer->SetBackground( 1.0, 1.0, 1.0 );

    vtkSmartPointer<vtkRenderWindow> renWin = 
        vtkSmartPointer<vtkRenderWindow>::New();
    renWin->AddRenderer( renderer );
    //设置窗口的大小
    renWin->SetSize( 640, 480 );
    renWin->Render();
    //设置窗口的名字
    renWin->SetWindowName("RenderCylinderAndCone");

    //将窗口添加到WindowInterctor中去
    vtkSmartPointer<vtkRenderWindowInteractor> iren = 
        vtkSmartPointer<vtkRenderWindowInteractor>::New();
    iren->SetRenderWindow(renWin);

    //设置交互的样式 鼠标拖动时 可带动整个圆柱体的旋转
    vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = 
        vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
    iren->SetInteractorStyle(style);

    iren->Initialize();
    iren->Start();

    return EXIT_SUCCESS;
}

  

在这里插入图片描述一个渲染器(vtkRender)中可以包含多个actor

  

结果

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值