1: renWin->SetSize(300, 200);
C:\VTK 5.6\VTK\Widgets;C:\VTK 5.6\VTK\Rendering;C:\VTK 5.6\VTK\IO;C:\VTK 5.6\VTK\Imaging;C:\VTK 5.6\VTK\Graphics;C:\VTK 5.6\VTK\Geovis;C:\VTK 5.6\VTK\GenericFiltering;C:\VTK 5.6\VTK\Filtering;C:\VTK 5.6\VTK\Common;C:\VTK 5.6\release\x86;
C:\VTK 5.6\lib
vtkWidgets.lib
vtkHybrid.lib
vtkRendering.lib
vtkGraphics.lib
vtkImaging.lib
vtkIO.lib
vtkFiltering.lib
vtkCommon.lib
vtksys.lib
1: // This creates a polygonal cylinder model with eight circumferential facets.
2:
3: kCylinderSource *cylinder = vtkCylinderSource::New();
4: linder->SetResolution(3);
cylinder->SetResolution(4);
cylinder->SetResolution(5);
將上面的多邊形的幾何圖形映射至圖像上
即將 cylinder的輸出 接到 cylinderMapper的輸入
1: // The mapper is responsible for pushing the geometry into the graphics
2: // library. It may also do color mapping, if scalars or other attributes
3: // are defined.
4: //
5: vtkPolyDataMapper *cylinderMapper = vtkPolyDataMapper::New();
6: cylinderMapper->SetInputConnection(cylinder->GetOutputPort());
創建一個cylinderActor, 類似剛才作法
將 cylinderMapper的輸出 接到 cylinderActor的輸入
同時設定cylinderActor的顏色, 擺放的角度
1:
2:
3: // The actor is a grouping mechanism: besides the geometry (mapper), it
4: // also has a property, transformation matrix, and/or texture map.
5: // Here we set its color and rotate it -22.5 degrees.
6: vtkActor *cylinderActor = vtkActor::New();
7: cylinderActor->SetMapper(cylinderMapper);
8: cylinderActor->GetProperty()->SetColor(1.0000, 0.0000, 0.0000);
9: cylinderActor->RotateX(30.0);
10: cylinderActor->RotateY(-45.0);
創建一個rend1和renWin
將ren1加入renWin 即 renWin->AddRender(ren1)
加入視窗互動 iren, 可以接收滑鼠相關事件 iren->SetRenderWindow(renWin)
1: // Create the graphics structure. The renderer renders into the
2: // render window. The render window interactor captures mouse events
3: // and will perform appropriate camera or actor manipulation
4: // depending on the nature of the events.
5: //
6: vtkRenderer *ren1 = vtkRenderer::New();
7: vtkRenderWindow *renWin = vtkRenderWindow::New();
8: renWin->AddRenderer(ren1);
9: vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
10: iren->SetRenderWindow(renWin);
ren1加入主角cylinderActor
設定ren1的背景顏色及renWin大小
1:
2: // Add the actors to the renderer, set the background and size
3: //
4: ren1->AddActor(cylinderActor);
5: ren1->SetBackground(0.1, 0.2, 0.4);
6: renWin->SetSize(300, 200);
將攝影機靠近(放大效果), ren1->GetActiveCamera()->Zoom(1.5)
並開始顯示 renWin->Render()
1: // We'll zoom in a little by accessing the camera and invoking a "Zoom"
2: // method on it.
3: ren1->ResetCamera();
4: ren1->GetActiveCamera()->Zoom(1.5);
5: renWin->Render();
開始iren
1: // This starts the event loop and as a side effect causes an initial render.
2: iren->Start();
當關閉視窗, 釋放資源
1: // Exiting from here, we have to delete all the instances that
2: // have been created.
3: cylinder->Delete();
4: cylinderMapper->Delete();
5: cylinderActor->Delete();
6: ren1->Delete();
7: renWin->Delete();
8: iren->Delete();
範例程式: VTKHelloWolrd
資料來源:
留言列表