多视角2.5D矢量地图实时投影算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多视角2.5D矢量地图实时投影算法
A real-time projecting algorithm under transformed perspective
陈明亮
摘要:介绍了一种高效、显示效果美观的2.5维导航地图显示算法。
该算法基于透视投影原理,可动态设置地图倾斜角度、视点的空间位置,可实现水系和绿地进大远小、道路线前宽后窄和道路反走样的效果。
关键字:透视投影;2.5D;前宽后窄;反走样
Abstract:An efficient, artistic projective algorithm is introduced to draw vector objects under the 2.5-D perspective. The algorithm is based on the principle of perspective projection, the map can be dynamically set the tilt angle, point of view in space, water and green spaces can be realized into the far smaller, narrow road and the front of the line width of the road after the effect of anti-aliasing
Key words:perspective projection;2.5D;after former wide narrow;anti-aliasing
1透视投影的概念
透视投影是用中心投影法将形体投射到投影面上,从而获得的一种较为接近视觉效果的单面投影图。
它具消失感、距离感、相同大小的形体呈现出有规律的变化等一系列的透
视特性,能逼真地反映形体的空间形象。
多视角2.5D矢量地图实时投影算法正是基于透视投影的基本原理而研究出的2.5维导航地图显示算法。
图1-1 透视的形成
图1-2 基本概念图示二
2导航中的透视投影算法
在导航中使用的透视投影算法和以上描述是稍有区别的。
在2维的情形下,地图的水平面与投影面是平行的,视点在距离视平面无穷远处。
而在25维显示模式,则是通过地图的水平面和投影面形成一定的夹角来产生的。
见下图:
图3:2D 和25D 投影关系对比图
图4:25D 投影的立体效果图(视点的Y 向高度为0)
图5:25D 导航模拟效果图
从上图可以看出矩形经过25D 透视投影后,在屏幕上成为梯形,且具有近大远小的特点。
X
地图面
2D 正射投影
Z
25D 投影
3 2.5维的透视投影算法实现
3.1算法描述
3.1.1、视点的高度以及视点与视平面的距离可以进行设置。
3.1.2、视平面高度可以进行设置,通常25D时高度小于2D时的高度。
3.1.3、视平面与投影面相交于视平线的位置,视平线下方的对象被放大,上方的对象被缩小。
图6:SNE25D投影立体示意图(视点Y向高度不为0)
3.2、参数设置:
视平面的高度为h,宽度为w;
视点到视平面的距离为d,视点的高度为hsp;
地图的倾斜角度为,视平面的实际显示高度为ht;
地图的中心点坐标为xcenter,ycenter。
图7:25D 投影视平面参数说明
图8:25D 投影梯形地图面参数说明
则四个顶点的坐标分别为:
P1(xcenter-xmax ,ycenter+ymax ),P2(xcenter-xmin ,ycenter-ymin ), P3(xcenter+xmin ,ycenter-ymin ),P4(xcenter+xmax ,ycenter+ymax )。
3.3、计算25D 投影时的地图显示范围。
x
x
(
图9:ZOY平面投影图
如上图所示,根据线段之间的空间关系,有如下结果
,即
由正弦定理有
()
()其中();
并且满足;即
同样,由正弦定理有,即
()
其中(),并且满足.
图10:三维视角投影图
若要求时地图被拉伸,则需要满足,即,即,即,即。
在,由三角形的相似关系,有以及, 联立则有
()
同样,由三角形的相似关系有以及, 联立则有
3.4、从地图坐标到投影面坐标的转化
,其中平面,平面。
(见图6)
3.4.1、若,如下图所示:假设点的坐标为,M点的坐标为,为M 点在投影面上的投影点。
图11:ZOY平面投影图
利用三角形的相似关系有,, 即;
其中,,
, ,即
根据三角形的相似关系,参见图10,有,即
3.4.2、如果,则有
3.4.3、如果
图12:ZOY平面投影图
利用三角形的相似关系有,即,其中
,,
, ,即
=
同样,参见图10,根据三角形的相似关系,有,即
通过合并,可以发现与的情况有相同的表达式。
3.4.4、综上,有投影变换函数
且满足
2.4.5、约束条件
由于 , ,在对显示的地理范围进行下边线裁剪后满足 ,在假定 时,有
3.5、从投影面坐标到地图坐标的转化
即 ,其中 平面 平面。
3.5.1、如果 ,如下图所示:M 点的坐标为 , 点的坐标为 ,, 为M 点在投影面上的投影点。
图13:ZOY 平面投影图
为了避免3.2.3中求边界时的实时三角函数运算,采用直线求交点的办法来计算。
利用 直线和 来计算 点的Y 轴上的值,然后求出 线段的长度。
假定 , 为直线上的点,如图示,在直角坐标系 , 对应的方程为
( )
’
对应的方程为
联立解得 点的Y 坐标值
( )
在 内有
参见图10,由三角形的相似关系,有
,即
3.5.2、如果 ,则有
可以验证,同样也适用2.4.1的结果。
3.5.3、如果
图14:ZOY 平面投影图
可以验证, 点的Y 坐标值同样为
Z ’
()在内有
参见图10,由三角形的相似关系,有,即
2.5.4、综上,有的变换公式满足,
若
若
其中
()2.5.5 约束条件
且满足()
即或
即tan()
4 显示流程
1、确定显示范围(数据页)。
图15:计算显示范围的流程
2、25D 显示时地理坐标到投影坐标的转化。
坐标旋转
外接矩形
图16:点的投影转化流程图
5 道路前宽后窄的实现
道路的前宽后窄效果,道路的宽度是随着y 值的变化而变化的。
图17:25D 情形道路前宽后窄示意图
假定2D 情形道路的宽度为weight ,窗体的上边界纵坐标为Ymax ,下边界纵坐标为Ymin ,且 .则对于任意点的 ( , )的道路宽度满足
其中K 为屏幕最下方宽道路的变宽系数,min 为屏幕最上端保留的道路宽度。
6 凸多边形的反走样实现
为了实现非平行道路的反走样显示,需要实现凸多边形的反走样算法。
凸多边形填充作为已有的平行四边形填充算法的扩展:
1、由于左右两侧边界线的斜率各不相同,因此在按行移动扫描线时需要同时考虑两条线的斜率。
2、对于不完全覆盖的像素绘制颜色强度,左右两侧是分别与两条边界线关联起来的。
3、连接两条线之间的圆的半径由线在该点的宽度决定。
X。