一种基于鼠标位置实现gdi电子矢量地图缩放及平移的方法

文档序号:8922317阅读:1144来源:国知局
一种基于鼠标位置实现gdi电子矢量地图缩放及平移的方法
【技术领域】
[0001] 本发明属于电子矢量地图处理技术领域,特别是涉及一种基于鼠标位置实现GDI 电子矢量地图缩放及平移的方法。
【背景技术】
[0002] ⑶I(GraphicsDeviceInterface)含义为图形设备接口,主要任务是负责 Windows操作系统与绘图程序之间的信息交互,处理所有Windows应用程序的图形输出。与 OpenGL、⑶1+、DriectX等绘图引擎相比,⑶I具有绘图效率高、使用简单的优点,因而广 泛的应用于二维矢量地图的绘制中。然而GDI只能提供基本的二维图形绘制功能,但无法 提供二维图形变换功能,因而难以实现电子矢量地图的缩放与平移等高级功能,而OpenGL、 GDI+、DriectX等均具有相关的实现函数。另外,现有的GDI电子矢量地图软件在进行缩 放操作时,均是以屏幕中心点为参考点对屏幕内绘图对象的像素点按缩放比例换算,但缺 点是缩放时矢量地图会发生漂移。

【发明内容】

[0003] 为了解决上述问题,本发明的目的在于提供一种基于鼠标位置实现GDI电子矢量 地图缩放及平移的方法。
[0004] 为了达到上述目的,本发明提供的基于鼠标位置实现⑶I电子矢量地图缩放及平 移的方法包括按顺序进行的下列步骤:
[0005] 步骤一、建立地图坐标系及屏幕坐标系;
[0006] 步骤二、建立参考矩形,并设置参考矩形的实际长度和实际高度、屏幕长度和屏幕 高度及顶点屏幕坐标,由此在地图坐标系与屏幕坐标系之间建立映射关系;
[0007] 步骤三、获取鼠标滚轮消息,计算缩放因子;根据鼠标移动的距离,计算鼠标平移 因子;
[0008] 步骤四、根据鼠标的当前位置、缩放因子及鼠标平移因子,计算出缩放平移后新的 参考矩形的屏幕位置,实现对参考矩形的缩放及平移;
[0009] 步骤五、根据参考矩形重新计算矢量地图的屏幕坐标,实现对矢量地图的缩放及 平移操作。
[0010] 在步骤一中,所述的地图坐标系是以正东方向为X轴,以正北方向为Y轴;屏幕坐 标系是以屏幕左上角为原点,x轴沿屏幕向左,y轴垂直于x轴且沿屏幕向下。
[0011] 在步骤二中,所述的建立参考矩形,并设置参考矩形的实际长度和实际高度以及 屏幕长度和屏幕高度的方法是:使参考矩形的中心点与屏幕的中心点重合,参考矩形的实 际长宽比例与参考矩形的屏幕长宽比例一致。
[0012] 在步骤三中,所述的获取鼠标滚轮消息,计算缩放因子a;根据鼠标移动的距离, 计算鼠标平移因子的方法是:通过Windows操作系统提供的API接口函数捕获鼠标的滚轮 消息和鼠标移动消息,计算得到缩放因子及鼠标平移因子。
[0013] 在步骤四中,所述的根据鼠标的当前位置、缩放因子及鼠标平移因子,计算出缩放 平移后新的参考矩形的屏幕位置,实现对参考矩形的缩放及平移的方法是:通过将鼠标当 前屏幕位置与参考矩形的四个顶点连接,将参考矩形分割为四个三角形,依据相似三角形 定理,结合缩放因子及鼠标平移因子,计算出经过缩放及平移操作后参考矩形四个顶点的 屏幕位置。
[0014] 在步骤五中,所述的根据参考矩形重新计算矢量地图的屏幕坐标,实现对矢量地 图的缩放及平移操作的方法是:根据参考矩形的屏幕位置,通过步骤二确定的地图坐标系 和屏幕坐标系间的映射关系,将矢量地图的实际坐标重新转换为屏幕坐标并进行显示,以 实现对矢量地图的缩放及平移操作。
[0015] 本发明提供的基于鼠标位置实现GDI电子矢量地图缩放及平移的方法与现有技 术方案相比具有以下技术效果:本发明在GDI绘图环境下,通过设置参考矩形,简便地实现 了电子矢量地图的平移操作,以及基于鼠标位置的地图缩放操作,缩放时以鼠标位置为原 点,解决了缩放过程矢量地图发生漂移的问题。本方法不仅适用于矢量电子地图的缩放,还 可以适用于图片缩放及其它缩放交互操作。
【附图说明】
[0016] 图1为本发明提供的GDI基于鼠标位置实现GDI电子矢量地图缩放及平移的方法 流程图。
[0017] 图2为本发明中使用的两种坐标系示意图。
[0018] 图3为鼠标位于参考矩形内进行放大操作时参考矩形变化示意图。
[0019] 图4为鼠标位于参考矩形外进行放大操作时参考矩形变化示意图。
[0020] 图5为鼠标位于参考矩形内进行缩小操作时参考矩形变化示意图。
[0021] 图6为鼠标位于参考矩形外进行缩小操作时参考矩形变化示意图。
[0022] 图7为进行平移操作时参考矩形变化示意图。
【具体实施方式】
[0023] 下面结合附图和具体实施例对本发明提供的基于鼠标位置的矢量地图缩放及平 移的方法进行详细说明。
[0024] 图1为本发明提供的GDI基于鼠标位置实现GDI电子矢量地图缩放及平移的方法 流程图。其中的全部操作都是在以计算机为核心的计算机系统中完成的,操作的主体均为 计算机系统。
[0025] 如图1所示,本发明提供的基于鼠标位置实现GDI电子矢量地图缩放及平移的方 法包括按顺序进行的下列步骤:
[0026] 步骤一、建立地图坐标系(X,Y)及屏幕坐标系(x,y);
[0027] 地图坐标系以正东方向为X轴,以正北方向为Y轴。将采用地理坐标系的原始地 图数据经过高斯-克吕格投影后投影到地图坐标系下。屏幕坐标系以屏幕左上角为原点, x轴沿屏幕向左,y轴垂直于x轴且沿屏幕向下。上述两种坐标系如图2所示。
[0028] 步骤二、建立参考矩形,并设置参考矩形的实际长度和实际高度、屏幕长度和屏幕 高度及顶点屏幕坐标,由此在地图坐标系与屏幕坐标系之间建立映射关系;
[0029] 建立参考矩形并设置参考矩形的实际长度Ls及实际高度Hs。设置参考矩形的屏 幕长度1^及屏幕高度111)。1^、扎与1^、%满足如下关系:
[0031] 使参考矩形的中心点与屏幕的中心点重合。计算参考矩形的四个顶点A,B,C,D的 屏幕坐标(xA,yA)、(xB,yB)、(X。,y。)、(xD,yD),计算公式如下:
[0033] 公式⑵中M为电脑屏幕的横向分辨率,N为电脑屏幕的纵向分辨率。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1