近期项目上需要使用VTK,因为之前从没接触过,所以需要从0开始。因为编译的教程很多,而且步骤也比较繁琐,如果还有其他库的打通,对各种环境的要求也都不尽相同,这里就不做说明了,我使用的是CMake+VS2017编译的,学习阶段的IDE用的是Qt5.14.2,VTK版本是8.2,如果有需要请邮箱联系hu1184164475@outlook.com(发邮件后请评论留言)。
#include <vtkConeSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkActor.h>
#include <vtkCamera.h>
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2) ;
VTK_MODULE_INIT(vtkInteractionStyle) ;
VTK_MODULE_INIT(vtkRenderingFreeType);
int main_001(int argc,char* argv[])
{
vtkConeSource* coneSource = vtkConeSource::New();
//分辨率
coneSource->SetResolution(100);
//高度
coneSource->SetHeight(5);
//底面半径
coneSource->SetRadius(2);
//映射器
vtkPolyDataMapper* mapper = vtkPolyDataMapper::New();
mapper->SetInputConnection(coneSource->GetOutputPort());
vtkActor* actor = vtkActor::New();
actor->SetMapper(mapper);
vtkRenderer* renderer = vtkRenderer::New();
renderer->AddActor(actor);
renderer->SetBackground(0.1,0.2,0.4);
vtkRenderWindow* window = vtkRenderWindow::New();
window->SetSize(500,500);
window->AddRenderer(renderer);
for(int i=0;i < 3600;i++)
{
window->Render();
renderer->GetActiveCamera()->Azimuth(1);
}
window->Delete();
renderer->Delete();
mapper->Delete();
actor->Delete();
coneSource->Delete();
return 0;
}