屏幕坐标转换分析
来源:互联网 发布:js call apply 区别 编辑:程序博客网 时间:2024/06/02 04:28
1.屏幕坐标以像素为单位,地图坐标通常以米为单位,CAD制图默认以毫米为单位。
DPI是“dot per inch”的缩写。顾名思义,就是指在每英寸长度内的点数。
通常,我们都使用dpi来作为扫描器和打印机的解析度单位,数值越高表示解析度越高。DPI表示分辨率,指每英寸长度上的点数。一般的PC分辨率为96dpi。1英寸=0.0253999999614米。
获取分辨率:
float dx, dy;Graphics g =this.CreateGraphics();try{ dx = g.DpiX; dy = g.DpiY;}finally{ g.Dispose();}
蓝色为地理坐标系XOY,记为坐标系A;地图的左下角点为(X0,Y0)可很容易的平移到坐标原点。因此这里只考虑地图位于坐标原点的情况,如图二也记为坐标系A。蓝色矩形框为地图。
黄色为屏幕坐标系xoy,记为坐标系B。黄色矩形框为屏幕。
设地理坐标系X’OY’中任意一点为A(X1,Y1),对应于屏幕坐标系B中的点A’为a(x1,y1);
屏幕坐标以像素为单位,地理坐标以米为单位,两者之间存在固定的比例关系。屏幕高度为H。假设1像素对应1m,此时缩放比例Zoom=1。
可以建立简单的关系:
(1)如图三,认为两个坐标系固定,首先在屏幕坐标系将地图左下角移动到屏幕中心(W/2,H/2)。平移向量(W/2,-H/2),此时A点屏幕坐标系坐标:
(2)以某屏幕一点B(x2,y2)为中心放大,首先屏幕坐标B点对应的屏幕坐标为
则将地图B点平移到屏幕原点(平移向量(,))后再平移到中心(平移向量(W/2,H/2))后放大。此时A点屏幕坐标:
(3)接着再平移以某屏幕一点C(x3,y3)中心放大。
依次…
OpenS-CAD通过panOffset来标识设置了屏幕中心后地图坐标需要偏移的值(以屏幕坐标记)。对应(2)中的当然也对应(3)中的。
- 屏幕坐标转换分析
- 一个地图坐标转换成屏幕坐标
- 屏幕坐标向OpenGL坐标转换
- 地图坐标与屏幕坐标的转换
- 经纬度坐标转换为屏幕坐标
- 屏幕坐标向OpenGL坐标转换
- 屏幕坐标向OpenGL坐标转换
- 屏幕坐标向OpenGL坐标转换
- 客户区坐标转换成屏幕坐标
- OpenGL屏幕坐标到三维坐标转换
- 屏幕坐标到opengl世界坐标转换
- 屏幕坐标到opengl世界坐标转换
- 经纬度坐标转换为屏幕坐标
- 屏幕坐标向opengl三维坐标转换
- 经纬度坐标转换成屏幕坐标
- 屏幕坐标向世界坐标转换
- 经纬度坐标转换为屏幕坐标
- 屏幕坐标与客户坐标的转换
- java享元模式实例
- Android应用开发——界面开发之常用组件的属性介绍
- 二叉查找树(二叉排序树)的详细实现
- 和法国恢复
- DIB函数注释
- 屏幕坐标转换分析
- 第一次写博客
- ActiveMQ集群:网络连接模式(network connector)详解
- zoj 3772 线段树--单点更新
- VS2010 快捷键大全
- openjdk
- Android UI控件详解-Spinner(下拉列表)
- 安装ubuntu之后的一些设置总结(更新ing)
- 在Ubuntu 12.04安装和设置SSH服务