C/C++

VTK 視覺化工具 C++ 程式 Hello World 編譯教學與範例

介紹如何在 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
VTK Hello World 視窗

參考資料:VTKExamples

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago