1. 程式人生 > >VTK基本概念之座標系統

VTK基本概念之座標系統

座標系統

  在實際開發中,必須理解不同座標系統之間的關係。計算機圖形學裡常用的四種座標系:Model座標系、Word座標系、View座標系和Display座標系統,轉換關係如下圖所示。
  
這裡寫圖片描述

VTK支援多種不同型別的座標系統。類vtkCoordinate可以在不同的座標系統進行變換,VTK支援的座標系統如下:

這裡寫圖片描述

不同座標系介紹

Model座標系統

  Model座標系統是定義模型時所用採用的座標系統,通常是區域性的笛卡爾座標系。例如:要定義一個表示球體的Actor,一般的做法是將改球體定義在一個柱座標系統裡。

World座標系統

  World座標系統是放置Actor、相機和光照的三維空間座標系。Actor的一個功能就是負責將Model座標系統變換到World系統。World座標系統只有一個,每個Actor必須通過放縮、旋轉、平移等操作將Model座標系變換到World座標系。類似Python實現程式碼。

actor = vtkActor()
transform = vtkTransform()
actor.SetUserTransform(transform)

View座標系統

  View座標系統表示的是相機所看見的座標系統。由x,y值組成,範圍位於(-1,1),z值表示深度座標。x,y值指定物體在影象平面的位置,而z值表示的是離照相機的距離。
相機的位置資訊是由一個4*4的矩陣來表示的,這個矩陣用於將Word座標系統變換到View座標系。

ViewPort座標系統

  ViewPort座標系統是把不同的渲染場景放在同一個視窗進行顯示。用vtkRenderer::SetViewPort()來設定視口的範圍。視口的x,y取值為(0, 1)。

Display座標系統

  Display座標系統跟View座標系統類似,但是各座標軸的取值不是[-1, 1],而是使用螢幕畫素值。z值表示深度資訊。螢幕上顯示的不同視窗的大小會影響View座標系的座標值[-1, 1]到Display座標系的對映。