透視投影變換在GPS導航中的應用
陳玉進 李泉 南京跬步科技有限公司 http://www.creable.cn
在GPS導航中,爲了模擬出開車人的視線觀察視野,需要對地圖進行旋轉、透視投影變換(又分爲旋轉、中心投影兩個步驟)等一系列的變換。其中旋轉變換是爲了模擬正前方是車行的方向,透視變換是以開車人爲視點所觀察到的道路形態,如下圖。
這裏我們主要討論透視變換,就是將2維(正射)地圖透射投影變換成2.5維的地圖,以達到假3維的效果。以屏幕爲XOY平面,也是投影面,視點位於Z軸的正向某一點V(0,0,z0)上,如圖,具體步驟有兩步:1,將正射地圖繞X軸向Z軸的負方向旋轉一個銳角角度(比如,450);2,將旋轉過的點,以視點V透視投影到屏幕上,即XOY平面上。
從上圖可以看出矩形經過旋轉、透視中心投影后,在屏幕上投影成梯形,且具有近大遠小的特點。爲了便於公式的推導,先介紹一下,旋轉變換,如下圖,分別爲繞Y軸、X軸、Z軸旋轉的變換。
假設屏幕XOY上任一點座標P(a,b,0),繞X軸旋轉450到P’,再以V(0,0,z0)爲視點,透視中心投影到屏幕XOY上,得到P*,求P*的座標?
解:P(a,b,0)——>P’,繞X軸作向Z軸的負方向旋轉450變換,根據公式
則得到
——>P*,透視中心投影到屏幕XOY上,即求直線P’V與平面XOY的交點,直線P’V即
平面XOY即z=0,聯立方程組,即
解出P’在屏幕XOY上的透視中心投影點P*。
在實際開發過程中,需要注意的幾點:
1. 將座標系的Y軸移至屏幕的中軸線上,X軸不變,X軸與Y軸的交點即爲座標系原點。
2. 經過旋轉、透視中心投影后,矩形變成了梯形,在屏幕上顯示的時候,會出現空白區域,爲此,可以把梯形的中間矩形部分放大到全屏顯示。