VTK学习笔记(九)vtkDiskSource

该博客演示了如何使用VTK库中的vtkDiskSource类来生成一个中间有孔的多边形磁盘。通过设置内外半径和分辨率参数,可以定制磁盘的形状和细节。然后,通过vtkPolyDataMapper和vtkActor将磁盘渲染到3D场景中,并使用vtkNamedColors设置背景和磁盘颜色。最终,通过vtkRenderWindow和vtkRenderWindowInteractor实现交互式显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
}

去掉注释后执行效果如图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值