大地坐标系与SVG DOM屏幕坐标之间的变换

大地坐标系与SVG DOM屏幕坐标之间的变换
在SVG DOM里,显示给用户是的真实世界的坐标系,视图的放大、缩小、平移及对空间对象的创建、操作都是基于真实世界的坐标系。这要求设计出一套真实坐标与屏幕坐标之间变换。
在本 选项题中使用的大地坐标系是X轴向北,Y轴向东,称为(realX,realY),单位m,而SVG DOM有两套坐标系,一为屏幕坐标系,X轴向东(右),Y轴向南(下),下称为(clientX,clientY),单位px,原点(0,0)在SVG DOM视窗的左上角, 屏幕坐标系的位置是固定的。另一套坐标为用户坐标系,下称为(userX,userY),初始时, 用户坐标系与屏幕坐标系重叠一致(图12)。在SVG DOM 我们使用的是用户坐标系,通过对用户坐标系旋转、平移、缩放以到达能在SVG DOM的矩形视窗范围内显示用户关心的图象。
 
图 12    各种坐标系关系
可以看出,用户坐标系逆时针旋转90度后与大地坐标系一致,因此设定大地坐标系与用户坐标为1:1对应关系,现在要解决的是用户坐标系与屏幕坐标系之间的变换关系就行了。要在SVG DOM中显示大地坐标系中比例系数为s(px/m,1真实坐标单位m等于s个屏幕坐标单位px),左上角的大地坐标为(realX0,realY0),则用户坐标系必须做如下顺序变换(图 5-2):(1)平移(-realX0,-realY0);(2)放大S倍;(3)旋转(-90)度。参看图13所示。
 
图 13   大地坐标系与SVG DOM屏幕坐标系转换
在SVG的规范中,此变换由属性transform描述定义这种坐标变换:
transform=”rotate(-90) scale(S) translate(-realX0,-realY0)”
 三种坐标的关系为:
  realX = userX = realX0 - clientY/S;
  realY = userY = realY0 + clientX/S;
 几何解释为:SVG DOM当前呈现视图,左上角的位置是大地坐标(realX0,realY0),S个像素(px)相当于一个大地坐标单位(m)。 每次放大、缩小、平移视窗,都必须重新计算设置realX0,realY0及比例S,可动态维持大地坐标系与屏幕坐标系之间的映射对应关系。

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值