VTK学习记录1-简单demo
图像模型:Rendering
可视化模型:生成几何模型
数据流,管道的执行流程:data source-》visualization-》graphics

整个舞台要由绘制器绘制,然后在renderwindow里展示,演员和观众之间的互动是用interactor交互器实现。

上图左边窗口放置了两个绘制器renderer。这里的三棱锥就是一个actor。
--------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------分割线-----------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------
先写一个简单的demo:
看的视频里的例子,不过视频里的是VTK5,我用的VTK8,个别接口比如改为setinput()。

1 //tips:如果不是用cmake编译,而是用vs编译的,需要加这三行。 2 #include "vtkAutoInit.h" 3 VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2 4 VTK_MODULE_INIT(vtkInteractionStyle); 5 6 #include <vtkConeSource.h> 7 #include <vtkRenderer.h> 8 #include <vtkPolyDataMapper.h> 9 #include <vtkRenderWindow.h> 10 #include <vtkActor.h> 11 #include <vtkCamera.h> 12 int main() 13 { 14 vtkConeSource *cone = vtkConeSource::New(); 15 cone->SetResolution(3); 16 cone->SetHeight(5); 17 cone->SetRadius(2); 18 19 vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New(); 20 coneMapper->SetInputData(cone->GetOutput()); 21 coneMapper->SetInputConnection(cone->GetOutputPort()); 22 23 vtkActor *vtkactor = vtkActor::New(); 24 vtkactor->SetMapper(coneMapper); 25 26 vtkRenderer *render = vtkRenderer::New(); 27 render->AddActor(vtkactor); 28 render->SetBackground(0.1, 0.2, 0.3); 29 30 vtkRenderWindow *window = vtkRenderWindow::New(); 31 window->SetSize(500, 500); 32 window->AddRenderer(render); 33 34 for (int i = 0; i < 36000; i++) 35 { 36 window->Render(); 37 render->GetActiveCamera()->Azimuth(1); 38 } 39 40 cone->Delete(); 41 coneMapper->Delete(); 42 vtkactor->Delete(); 43 render->Delete(); 44 window->Delete(); 45 return 0; 46 }
注:由于不是用的cmake编译的,用VS2017编译的,所以前三行代码必须要加,不然就会编译OK,运行出错。
具体解释看这里。c++ - no override found for 'vtkPolyDataMapper' - Stack Overflow