vtkCylinderSource
类派生自vtkPolyDataAlgorithm,是 VTK中一个用于生成圆柱形几何体的类,使用这个类可以定义圆柱的高度、半径和圆的分辨率(即圆的边数)。
以下是一些主要的可配置属性:
- Height:定义圆柱的高度。
- Radius:设置圆柱的半径。
- Resolution:决定圆柱底面边数,分辨率越高,圆柱的底面越接近完美的圆形。
- Center:圆柱的中心位置。
- Capping:一个布尔值,决定是否在圆柱的顶部和底部添加封顶。
应用案例
下面是一个使用 vtkCylinderSource
的简单示例,展示如何创建一个基本的圆柱体,并将其添加到渲染管线中:
代码实现:
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSmartPointer.h>
int main() {
vtkSmartPointer<vtkCylinderSource> cylinderSource = vtkSmartPointer<vtkCylinderSource>::New();
cylinderSource->SetHeight(10.0);
cylinderSource->SetRadius(5.0);
cylinderSource->SetResolution(32);
// 创建映射器和演员
vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(cylinderSource->GetOutputPort());
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
// 创建渲染器和渲染窗口
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
renderer->AddActor(actor);
renderer->SetBackground(0.1, 0.2, 0.4); // 设置背景颜色
// 启动渲染循环
renderWindow->Render();
renderWindowInteractor->Start();
return 0;
}