VTK基本概念之座標系統
阿新 • • 發佈:2019-02-15
座標系統
在實際開發中,必須理解不同座標系統之間的關係。計算機圖形學裡常用的四種座標系: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座標系的對映。