1. 程式人生 > >球面投影 (立體和柱面的投影效果)

球面投影 (立體和柱面的投影效果)

【原文來自:http://blog.csdn.net/zhang11wu4/article/details/47754035】
球面投影 (立體和柱面的投影效果) Written by Paul Bourke
EEG data courtesy of Dr Per Line
December 1996, Updated December 1999

立體效果(在2維平面 畫出 3維的物體)

立體投影是把球面上的點投影到平面的方法之一。立體投影通常用於地球和空間的地圖繪製。這些地圖繪製通常有以下的特點:它們的幾何外觀是球面狀,但是卻需要在紙張或者電腦顯示器這樣的平面上展示。只要把球面對映到平面就會產生扭曲失真,當然

立體投影也毫無例外。所有說它並不是一種能夠得到最小扭曲失真投影的理想方法。

立體投影模型:一個透明球體置於平面之上。我們把球體與平面相切的點叫南極點,把光源 置於南極點過球心對稱的點P1北極點。每一條透過球面某一點P2的光線都會投射在平面上的某一點P那麼這個點P就是球面P2點在平面上的立體投影

為了推導立體投影的座標轉換公式,我們假設:球心位於 座標原點(0,0,0),球的半徑是 r,投影平面在 z = -r 上,光源在點 (0,0,r) 上。參照以下的 Schlegal 圖解:

假設過光源點P1 = (0,0,r) 、球面上的點P2 = (x,y,z)的線的點方程是:

P = P1 + mu (P2 - P1) . . . . . . (1)
我們要求出P2鍋直線在平面上交點,即(Px, Py, -r),代入(1)式得:
-r = r + mu (z - r)
或:mu = 2r / (r - z)

現在我們可以吧常數mu回代到(1)式來取得任意球面上點 (x,y,z) 的立體投影:

P = P1 +  (P2 - P1) * 2r / (r - z)

注意:

  • 南極點位於整個投影的中心
  • 緯線的投影的同心圓的圓心位於 (0,0, -r)
  • 經線的投影是點 (0,0,-r)的射線
  • 在南極點上幾乎沒有扭曲失真
  • 投影的結果是一個半徑為 2r 的圓
  • 越靠近北極點扭曲失真越大,北極點則失真無限大
例子:

下面的例子來自於EEG資料中心的一個近似半球體(人的頭部)。這些資料可以在一個虛擬的半球上重新渲染出來,但這樣做不能夠在任意視角看到整個半球的表面(也就是每一個角度都只能看到特定的半球表面)。最後的角度是從這個頭部的正上方往下看,不過頭部邊緣會因為曲率的原因產生嚴重的壓縮失真。

以下左圖展示了半球體的平面投影,右圖展示了同一半球體的立體投影。我們可以看到右圖邊緣的壓縮失真得到了極大的改善,邊緣區域的視覺效果得到了極大的提升。

注意:為了保持半球和投影大小在同一個維度,右圖在平面上的投影是按0.5的比例顯示。

圓柱面投影

通常柱面投影把緯線投影成等距的平行線,把在極點相交的經線也投影成了等距的平行線。圖示說明柱面投影的基本方法:從球心向球面作一條線相交於圓柱面,這個交點即為所求投影點。

推導公式非常直觀明瞭:

設極座標系球面上的點P(r, alpha, beta),令r=1

設展開的圓柱面水平方向為x軸,垂直方向為y軸,座標原點位於垂直方向的中間(水平方向的最左方),則有:

x = constant * alpha
y = constant * tan(beta)