透视投影变换在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. 经过旋转、透视中心投影后,矩形变成了梯形,在屏幕上显示的时候,会出现空白区域,为此,可以把梯形的中间矩形部分放大到全屏显示。