介紹如何在 Ubuntu Linux 中建立 VTK 應用程式開發環境,撰寫 VTK 的 hello world 程式。
VTK(Visualization Toolkit)是 Kitware 公司所發展的一套開放原始碼的 3D 繪圖函式庫,可用於各領域的三維科學資料處理與顯示,以下是在 Ubuntu Linux 中建立 VTK 應用程式的基本流程。
開發環境
若要開發基本的 VTK C++ 應用程式,除了安裝 VTK 函式庫之外,還要安裝好 CMake 編譯工具。在 Ubuntu Linux 中,可以使用 apt 安裝:
# 安裝 CMake 與 VTK 函式庫
sudo apt install cmake libvtk7-dev
Hello World
以下是一個 VTK 的 hello world 程式碼,將其儲存為 hello.cpp
:
#include <vtkSmartPointer.h> #include <vtkConeSource.h> #include <vtkPolyDataMapper.h> #include <vtkRenderWindow.h> #include <vtkCamera.h> #include <vtkActor.h> #include <vtkRenderer.h> #include <vtkRenderWindowInteractor.h> #include <vtkInteractorStyleTrackballCamera.h> int main () { // 建立錐體 vtkSmartPointer<vtkConeSource> coneSource = vtkSmartPointer<vtkConeSource>::New(); // 建立 PolyDataMapper,將多邊形資料(polygonal data) // 轉為圖形的基本元素(graphics primitives) vtkSmartPointer<vtkPolyDataMapper> coneMapper = vtkSmartPointer<vtkPolyDataMapper>::New(); coneMapper->SetInputConnection(coneSource->GetOutputPort()); // 建立 Actor,用於表現錐體 vtkSmartPointer<vtkActor> coneActor = vtkSmartPointer<vtkActor>::New(); coneActor->SetMapper(coneMapper); // 建立 Renderer vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); // 建立 RenderWindow 繪圖視窗,加入 Renderer,並設定視窗大小 vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); // 建立 Interactor vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); renderWindowInteractor->SetRenderWindow(renderWindow); // 加入錐體 Actor,並設定背景顏色 renderer->AddActor(coneActor); renderer->SetBackground(.1,.2,.3); // 設定視窗標題 renderWindow->SetWindowName("Hello, VTK!"); // 繪製圖形 renderWindow->Render(); // 設定 Interactor 為 Trackball 型式 vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New(); renderWindowInteractor->SetInteractorStyle(style); // 開始互動式操作 renderWindowInteractor->Start(); return EXIT_SUCCESS; }
CMakeLists.txt
設定檔
VTK 的應用程式通常都是搭配 CMake 來編譯,編譯之前要先建立一個 CMakeLists.txt
設定檔,基本的內容如下:
cmake_minimum_required(VERSION 3.10.2) # 設定專案名稱 project (Hello) # 尋找並引入 VTK 函式庫 find_package(VTK REQUIRED) include(${VTK_USE_FILE}) # 增加一個執行檔 add_executable(Hello hello.cpp) # 定義執行檔連結方式 target_link_libraries(Hello ${VTK_LIBRARIES})
編譯 VTK 應用程式
建立一個編譯用的 build
目錄,進入目錄之後,就按照一般的方式來編譯這個 CMake 專案:
# 建立編譯用目錄 mkdir build # 進入目錄,編譯專案 cd build cmake .. make
編譯完成之後,執行編譯好的程式:
# 執行程式
./Hello
參考資料:VTKExamples