vtkDiskSource对象创建一个中间有孔的多边形磁盘。磁盘高度为零。用户可以指定圆盘的内外半径,以及多边形表示的径向和周向分辨率。
#include <vtkActor.h>
#include <vtkDiskSource.h>
#include <vtkNamedColors.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkNew.h>
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
int main(int, char *[])
{
vtkNew<vtkNamedColors> colors;
vtkNew<vtkDiskSource> diskSource;
//diskSource->SetInnerRadius(10.6); //内圈半径
//diskSource->SetOuterRadius(60.5); //外圈半径
//diskSource->SetCircumferentialResolution(10); //几个角?圆被解析为几边形 默认为6
// Create a mapper and actor.
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(diskSource->GetOutputPort());
vtkNew<vtkActor> actor;
actor->GetProperty()->SetColor(colors->GetColor3d("Cornsilk").GetData());
actor->SetMapper(mapper);
// Create a renderer, render window, and interactor
vtkNew<vtkRenderer> renderer;
vtkNew<vtkRenderWindow> renderWindow;
renderWindow->SetWindowName("Disk");
renderWindow->AddRenderer(renderer);
vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
renderWindowInteractor->SetRenderWindow(renderWindow);
// Add the actors to the scene
renderer->AddActor(actor);
renderer->SetBackground(colors->GetColor3d("DarkGreen").GetData());
// Render and interact
renderWindow->Render();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}
去掉注释后执行效果如图