VTK 可视化的流程及步骤
标题引入VTK库和初始化:
- 引入
VTK
库和 AutoInit
模块,以便使用 VTK
的渲染和交互功能
设置背景颜色和颜色对象:
- 使用
vtkNamedColors
设置背景颜色和演员颜色。
创建圆柱体源:
- 使用
vtkCylinderSource
创建一个圆柱体,可以设置分辨率(面的数量)。
创建 PolyData
映射器:
- 使用
vtkPolyDataMapper
将圆柱体的输出连接到映射器的输入。
创建演员(Actor
):
- 使用vtkActor创建演员,并将映射器连接到演员。
设置演员属性:
创建渲染器:
- 使用
vtkRenderer
创建渲染器,并将演员添加到渲染器。
设置渲染器属性:
创建渲染窗口:
- 使用
vtkRenderWindow
创建渲染窗口,并将渲染器添加到渲染窗口。
设置渲染窗口属性:
创建渲染窗口交互器:
- 使用
vtkRenderWindowInteractor
创建渲染窗口交互器,并将渲染窗口连接到交互器。
渲染窗口并开始交互:
- 调用
Render
方法渲染窗口,然后调用Start方法开始交互事件循环。
#include <vtkActor.h>
#include <vtkCylinderSource.h>
#include <vtkNew.h>
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);#include <vtkCamera.h>
#include <vtkNamedColors.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>#include <array>int main()
{ vtkNew<vtkNamedColors> colors;std::array<unsigned char, 4> bg{26, 51, 102, 255};colors->SetColor("BlackColor", bg.data());vtkNew<vtkCylinderSource> cylinder;cylinder->SetResolution(10); vtkNew<vtkPolyDataMapper> cylinderMapper;cylinderMapper->SetInputConnection(cylinder->GetOutputPort());vtkNew<vtkActor> cylinderActor;cylinderActor->SetMapper(cylinderMapper); cylinderActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData()); cylinderActor->RotateX(30.0); cylinderActor->RotateY(-45.0); vtkNew<vtkRenderer> renderer;renderer->AddActor(cylinderActor); renderer->SetBackground(colors->GetColor3d("BlackColor").GetData());renderer->ResetCamera(); renderer->GetActiveCamera()->Zoom(1.5); vtkNew<vtkRenderWindow> renderWindow;renderWindow->SetSize(300, 300); renderWindow->AddRenderer(renderer); renderWindow->SetWindowName("Cylinder"); vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;renderWindowInteractor->SetRenderWindow(renderWindow); renderWindow->Render(); renderWindowInteractor->Start(); return 0;
}