#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
#include <vtkSmartPointer.h>
#include <vtkConeSource.h> //主要是生成圆锥的类
#include <vtkPolyDataMapper.h> //数据映射到图形硬件上
#include <vtkRenderer.h> //绘制器
#include <vtkRenderWindow.h> //绘制窗口
#include <vtkActor.h> //演员
#include <vtkCamera.h> //照相机
#include <vtkRenderWindowInteractor.h>//加入交互机制类
int main()
{
//指针创建一个圆锥cone
vtkConeSource *cone = vtkConeSource::New();
cone->SetResolution(5);//圆锥的棱边数
cone->SetHeight(3);//指定高度
cone->SetRadius(1);//指定半径
vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
coneMapper->SetInputConnection(cone->GetOutputPort());
vtkActor *coneActor = vtkActor::New();
coneActor->SetMapper(coneMapper); //vtkActor 则是一个可视化对象,用于在场景中呈现和操作几何数据
vtkRenderer *renderer = vtkRenderer::New();
renderer->AddActor(coneActor);//将演员加入场景
renderer->SetBackground(0.2, 0.2, 0.4);//设置场景背景颜色是(R,G,B)
//renderer是用于场景管理、渲染设置、光照渲染、交互操作
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->SetSize(400, 200);//设置窗口大小宽*高
renWin->AddRenderer(renderer);
vtkRenderWindowInteractor* interactor = vtkRenderWindowInteractor::New();//交互对象加入renWin窗口中
interactor->SetRenderWindow(renWin);
renWin->Render();
interactor->Initialize();//交互对象初始化
interactor->Start();//开始交互事件
//释放内存
cone->Delete();
coneActor->Delete();
coneMapper->Delete();
renderer->Delete();
renWin->Delete();
interactor->Delete();
return 0;
}
VTK基础学习:
vtkPolyDataMapper.h :将包含的几何数据映射到图形硬件上进行渲染,它包含了点、线、面等几何信息。
vtkActor.h :是将几何数据、属性和变换组合成一个可渲染的实体,并将其添加到渲染场景中。
vtkRenderer.h : 可以认为是一个独立的场景,用于将场景中的几何对象渲染与展示的,生成最终的图像。
vtkRenderWindowInteractor.h : 一种简单而有效的方式来实现交互式操作,用户可以与渲染窗口中的场景进行交互,像通过鼠标右键拖动可以平移视图,通过滚轮滚动可以缩放视图等