矢量地图缩放、旋转、平移操作的实现原理
一、三种坐标系统
世界坐标系, 始终保持不变, 如地理坐标系
局部坐标系, 以物体中心为坐标原点,物体的旋转、平移、缩放都围绕局部坐标系进行。物体旋转、缩放、平移时坐标系也相应的旋转、缩放、平移。如,地图经投影之后平面坐标系。
屏幕坐标系,计算机屏幕的坐标系。
二、算法[2,3]
通过操作坐标系,来实现物体的线性变换。如, 当平移一个点时, 是平移坐标系,然后重绘该点。
基本上每个GIS软件都有地图缩放、旋转、平移操作。在GIS中,有栅格和矢量两种格式,每种格式采用不同的处理方法,在此只考虑矢量数据, 栅格数据在以后处理。
矢量数据的操作有强大的理论依据,即计算机图形学。在计算机图形学中,平移、旋转、缩放统称为二维几何变换[1]。
Affine矩阵:
m11 m12 0
m21 m22 0
dx dy 1
dx,dy控制水平和垂直平移
m11,m22控制缩放
m12,m21控制旋转
设点(x,y)经Affine矩阵变换后的点坐标为(x',y'), 则有
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
参考文献:
1. Donald Hearn, M.Pauline Bake 计算机图形学(第二版) 141-167
2. http://www.qiliang.net/qt/qwmatrix.html QWMatrix Class Reference
3. http://www.csdn.net/develop/Article/21/21922.shtm Windows GDI中的坐标系
Tags:矢量地图
最新文章
- ArcGIS Engine实现添加图名比例尺指 [03-03]
- Google Earth客户端 基于Servlet的 [06-04]
- ArcObjects 3D开发简介 ArcScene构 [03-25]
- ArcIMS二次开发介绍 ArcMap服务 Ar [04-24]
- GIS的开发模式以及分析比较 宿主型 [04-24]
- 如何进行ArcIMS的二次开发 基于IMS [04-24]
- 什么是组件式GIS及组件式GIS开发平 [04-02]
- 地理信息系统软件开发OpenSource的 [03-31]
- SuperMap IS Java ——基于Java EE [03-30]
- 地图制图组件和开发资源库ArcGIS E [03-30]
推荐文章


热点文章
用VC读取DXF格式文件的原理及代码
GIS二次开发各种方式对比和Activ
ArcEngine中使用上下左右键移动地
C#中调用MapX方法实例及代码剖析
矢量地图缩放、旋转、平移操作的
MapX在VC++中实现军用标图系统的
MapX应用程序发布和打包过程及注
ARC命令说用说明及详细讲解
MapX教程及基本编程应用实例
如何在MapObject下把ActiveX控件
MapX教程之数据库绑定方法过程及
用C#根据经纬度求两点间距离的函
基于.NET平台的MapX开发方法及实
MapInfo
基于MapX的GIS系统动态操作原理及
用VB和MapX实现各种专题图的示例
如何在VB下用MapObject实现流场显
MapX如何在图层上添加一个点的代
用VB实现MapX移屏测距功能原理及
AO的Display对象简介及应用代码实
VC下用MapX实现任何比例尺打印功
MapX开发疑问之坐标问题讲解
组件开发之MapXtreme for window
MapX图层样式替换的VB源代码
在VC++中嵌入MapX集成二次开发的
ArcGIS Engine实现添加图名比例尺
Google Earth客户端 基于Servlet
ArcObjects 3D开发简介 ArcScene
ArcIMS二次开发介绍 ArcMap服务
GIS的开发模式以及分析比较 宿主

