• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

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 視窗
VTK Hello World 視窗

參考資料:VTKExamples

分類:C/C++ 標籤:Visualization, VTK

主要資訊欄

搜尋

近期文章

  • Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤
  • Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例
  • Linux 網路設定 ip 指令用法教學與範例
  • Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例
  • Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例
  • Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例
  • Linux 以 Cryptsetup 與 LUKS 加密磁碟教學與範例
  • Linux 使用 age 簡潔的加密、解密工具使用教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide