介紹如何在 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

