VTK是一個基於面向對象的開源三維繪圖軟件包,安裝過程並不複雜,簡單的cmake就能夠編譯安裝,具體過程仍是要記錄一下,以便翻看。linux
一 安裝shell
1.下載VTK6,能夠上官網自行下載 http://www.vtk.org/download/
緩存
2.解壓到當前目錄
app
3.進入目錄建立build文件夾,存放編譯文件。ide
4.進入build文件夾進行配置,進行配置ccmake .. (注意ccmake與..之間有空格,".."表明上一級目錄)測試
5.運行步驟4的代碼會跳出一下配置:ui
若是沒有編譯過的會提示沒有緩存,能夠按c進行配置,以後就會出現這個界面,用上下建選擇條目,BUILD_SHARE_LIBS 選擇ON ,VTK_Group_Qt選擇 On就能夠了,其它的能夠不作更改,再次按c進行配置確認,按g保存配置。
this
6.執行makespa
7.最後安裝 sudo make installcode
這樣就安裝完成了。
二 測試
新建Plane.cxx,寫入代碼:
#include <vtkVersion.h> #include <vtkPlaneSource.h> #include <vtkPolyData.h> #include <vtkSmartPointer.h> #include <vtkPolyDataMapper.h> #include <vtkActor.h> #include <vtkRenderWindow.h> #include <vtkRenderer.h> #include <vtkRenderWindowInteractor.h> int main(int, char *[]) { // Create a plane vtkSmartPointer<vtkPlaneSource> planeSource = vtkSmartPointer<vtkPlaneSource>::New(); planeSource->SetCenter(1.0, 0.0, 0.0); planeSource->SetNormal(1.0, 0.0, 1.0); planeSource->Update(); vtkPolyData* plane = planeSource->GetOutput(); // Create a mapper and actor vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); #if VTK_MAJOR_VERSION <= 5 mapper->SetInput(plane); #else mapper->SetInputData(plane); #endif vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); actor->SetMapper(mapper); // Create a renderer, render window and interactor vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); renderWindowInteractor->SetRenderWindow(renderWindow); // Add the actors to the scene renderer->AddActor(actor); renderer->SetBackground(.1,.2,.3); // Background color dark blue // Render and interact renderWindow->Render(); renderWindowInteractor->Start(); return EXIT_SUCCESS; }
新建CMakeLists.txt,寫入代碼:
cmake_minimum_required(VERSION 2.8) PROJECT(Plane) find_package(VTK REQUIRED) include(${VTK_USE_FILE}) add_executable(Plane MACOSX_BUNDLE Plane) if(VTK_LIBRARIES) target_link_libraries(Plane ${VTK_LIBRARIES}) else() target_link_libraries(Plane vtkHybrid vtkWidgets) endif()
以後運行:
cmake .. make ./Plane
運行效果以下:
若是想要將VTK6的界面在Qt中顯示,能夠將目錄build/lib/libQVTKWidgetPlugin.so文件放置到/usr/lib/x86_64-linux-gnu/qt4/plugins/designer中,記得使用最高權限。
如過是VTK5的版本,libQVTKWidgetPlugin.so文件在build/bin/文件夾下。
問題:
CMake Warning at CMakeLists.txt:5 (FIND_PACKAGE): By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Qt5Widgets", but CMake did not find one. Could not find a package configuration file provided by "Qt5Widgets" with any of the following names: Qt5WidgetsConfig.cmake qt5widgets-config.cmake Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set "Qt5Widgets_DIR" to a directory containing one of the above files. If "Qt5Widgets" provides a separate development package or SDK, be sure it has been installed.
新建CMAKE_PREFIX_PATH到qtbase就能夠了