基于GDI+的投影坐标与屏幕坐标的转换研究
基于高斯投影的坐标转换方法研究
基于高斯投影的坐标转换方法研究高斯投影是一种地理坐标转换方法,用于将地球上的经纬度坐标转换为平面坐标。
它在地图制图和测量工作中具有重要的应用。
本文将研究基于高斯投影的坐标转换方法。
高斯投影是一种平面坐标转换方法,因为地球是一个近似于椭球体的三维物体,无法直接在平面上表示。
高斯投影方法通过将地球表面的点投影到一个平面上,从而实现从地理坐标到平面坐标的转换。
高斯投影方法的核心是将地球表面上的点投影到一个平面上,并且保持原始地理距离的大小关系。
为了实现这一点,高斯投影方法使用了一个原点和一个缩放因子。
原点是投影平面上的一个点,用来定义投影的起点。
缩放因子是一个比例因子,用于调整投影的比例。
高斯投影方法有很多不同的变种,其中最常见的是高斯-克吕格投影和高斯-克吕格反投影。
高斯-克吕格投影将地球表面上的点投影到一个平面上,而高斯-克吕格反投影则从平面坐标逆向转换到地理坐标。
在高斯投影方法中,经度和纬度坐标先转换为弧度,然后通过一系列的数学计算,将它们转换为平面坐标。
这些数学计算包括正弦、余弦函数等。
高斯投影方法的准确性主要受到两个因素的影响。
第一个因素是投影的原点选择。
原点的选择会影响投影的整体形状和精度。
第二个因素是椭球体模型的选择。
椭球体模型用于近似地球的形状,不同的模型会导致不同的投影结果。
高斯投影方法在地图制图和测量工作中具有广泛的应用。
它可以帮助制作精确的地图,并且可以在不同的地图中进行坐标比较。
它还可以用于测量工作,如地理调查和空间数据分析。
如何解决测绘技术中常见的坐标转换与投影问题
如何解决测绘技术中常见的坐标转换与投影问题测绘技术在现代社会中扮演着重要的角色,它为我们提供了精确的地理信息和空间数据。
然而,在进行测绘过程中,常常会遇到坐标转换与投影问题。
本文将探讨如何解决测绘技术中常见的坐标转换与投影问题。
首先,让我们了解一下坐标转换的概念。
坐标转换是指将不同坐标系下的地理坐标相互转换的过程。
在测绘过程中,可能会遇到需要将地理坐标从一种坐标系转换为另一种坐标系的情况,这就需要进行坐标转换。
解决坐标转换问题的关键在于选择合适的转换方法。
常见的坐标转换方法包括数学变换法、参数变换法和海尔逊法。
数学变换法通过使用线性方程组来进行坐标转换,适用于小范围内的转换。
参数变换法通过使用转换模型和参数进行坐标转换,适用于大范围内的转换。
海尔逊法是一种拟合法,通过找到两种坐标系之间的转换函数来进行坐标转换,适用于非线性变换。
在进行坐标转换时,还需要考虑到投影问题。
投影是将三维地理空间转换为二维平面地图的过程。
地球是一个球体,而地图是平面,所以在进行投影时会有一定的变形和失真。
为了解决这个问题,人们发展出了多种投影方法,包括等距投影、等角投影和等积投影等。
在选择投影方法时,需要根据具体的测绘任务和实际需求进行选择。
例如,如果需要测绘一个大范围的区域,可以选择等面积投影方法,以保持面积的一致性。
如果需要测绘一个小范围的区域,可以选择等角投影方法,以保持角度的一致性。
解决投影问题的关键在于选取适合的投影方法和合适的参数。
需要根据地理数据的特点、测绘任务的要求以及测绘设备的性能等因素进行综合考虑。
例如,在进行地图测绘时,可以根据地区的经纬度范围和地形地貌特点来选择合适的投影方法和参数。
此外,还可以利用现代技术和软件来解决测绘技术中的坐标转换和投影问题。
例如,利用全球卫星定位系统(GPS)和地理信息系统(GIS),可以快速、准确地获取地理坐标数据,并进行坐标转换和投影。
同时,也可以利用专业的测绘软件和工具来进行坐标转换和投影,提高工作效率和准确性。
GDI中的坐标映射问题
GDI中的坐标映射问题阿里在我们进行绘图程序的开发时,不可避免地会遇到坐标映射的问题,而这恰恰是一个很伤脑筋、绕也绕不明白的问题。
我就经常为此而一卡就是几个小时,恨得要命,终于有一天心一横,豁出一个周末的晚上,啃了所有找得到的资料,特别是那蝌蚪一般的MSDN,发现了相关问题的冰山之一角,不过就这就已经有一种豁然开朗的感觉了,把它写出来还希望能够对受到同样问题困扰的各位看官有一点点帮助,同时也希望编程大侠们不要因为对这样一个简单的问题不屑一顾而见笑。
首先要明确的一点是,绘图语句中使用的坐标始终是逻辑空间的坐标值,而我们最终要绘制的目的地则是物理设备空间(physical device space)。
1.预备知识:GDI中所规定的四种坐标空间(或者叫坐标系)。
1.1 world坐标空间:引入world空间的目的是对图像进行平移、缩放、剪切等操作,其最大坐标范围为2^32个单位高,2^32个单位宽,初始状态时x轴正向向右,y轴正向向上。
World坐标空间可以成为逻辑空间。
1.2 page坐标空间:当没有world空间时,它就是逻辑空间,而且这种情况是最普遍的。
最大坐标范围为2^32个单位高,2^32个单位宽,初始状态时x轴正向向右,y轴正向向上。
1.3 device空间:设备空间,是坐标变换的常规目的地。
最大坐标范围为2^27个像素高,2^27个像素宽。
其特点是x轴正向向右,y轴正向向下,原点在物理设备左上角,而且这些规则我们不能改变。
1.4 physical Device空间:这一空间代表着具体的物理设备,是我们实际能看到的坐标空间,也是图形绘制的最终目的地,我们绘制的一个大尺寸图形到底能让我们看到多少,完全取决于它的大小。
它可以是Windows窗口的客户区,或者是整个桌面,或者是打印机的一页纸,或者是绘图仪的一页纸。
图1 坐标映射流程2.从Windows系统的角度来看GDI坐标映射。
首先我们从Windows系统的角度来看坐标映射是如何进行的,或者说来看看,Windows是如何将我们在程序中使用的逻辑空间坐标值转换成为物理设备空间坐标值的。
坐标转换与地图投影中的问题与解决方案
坐标转换与地图投影中的问题与解决方案地图投影与坐标转换是地理信息系统(GIS)中非常重要的概念,它们被广泛应用于各种应用领域,如导航系统、地图制作以及地质勘探等。
然而,由于地球的形状是不规则的,所以在将地球表面的点投影到二维平面上时会出现一些问题。
在本文中,我们将探讨坐标转换与地图投影中常见的问题,并提出一些解决方案。
首先,让我们来看一下坐标转换中的问题。
坐标转换是指将一个坐标系统的点转换到另一个坐标系统的过程。
由于不同坐标系统使用不同的参考点和度量单位,因此在进行坐标转换时需要考虑这些差异。
一种常见的问题是椭球体之间的转换。
地球被建模为一个椭球体,而不同的参考系统使用不同的椭球体模型。
因此,在进行坐标转换时,需要将这些椭球体之间的差异纳入考虑,以确保准确的转换结果。
为了解决椭球体转换问题,人们开发了一种叫做大地坐标系统的方法。
大地坐标系统通过定义一个参考椭球体以及与参考椭球体相关的参数,来进行坐标转换。
其中,最常见的大地坐标系统是经纬度坐标系统,即将地球表面上的点用经度和纬度表示。
由于大地坐标系统与椭球体的关联,它可以更准确地进行坐标转换。
接下来,让我们来探讨地图投影中的问题。
地图投影是指将地球表面上的点投影到二维平面上的过程。
在进行地图投影时,需要考虑到地球的形状、面积和角度的扭曲。
由于地球是一个三维物体,所以将其投影到二维平面上时,会引起形状的扭曲。
这种扭曲会导致地图上的距离、面积和角度与实际情况不符。
为了解决地图投影中的问题,人们发展了多种不同的投影方法。
其中,等距圆柱投影、等面积投影和等角投影被广泛使用。
等距圆柱投影在经度和纬度上都有等间隔的划分,它可以保证地图上的方向是准确的,但会导致面积和角度的扭曲。
等面积投影可以保证地图上的面积比例与实际一致,但会导致其他方面的变形。
而等角投影可以保证地图上的角度比例与实际一致,但会导致面积和形状的扭曲。
因此,在进行地图投影时,需要根据具体的应用需求选择合适的投影方法。
测绘技术中的坐标转换与投影变换技巧
测绘技术中的坐标转换与投影变换技巧测绘技术是地理信息科学的一项重要组成部分。
随着各类地理信息的快速增长和应用需求的不断提升,精准的坐标转换和投影变换技巧成为测绘工作者必备的技能。
在本文中,我们将探讨测绘技术中的坐标转换与投影变换技巧,并介绍一些实用的应用案例。
一、坐标转换技巧1. 坐标系统的选择在进行坐标转换前,首先需要明确应用的坐标系统。
常见的坐标系统包括经纬度坐标系统、GPS坐标系统以及各种投影坐标系统等。
根据不同的测绘任务,选择适合的坐标系统是确保坐标转换精度的关键。
2. 坐标转换方法的选择坐标转换可以通过数学模型进行,常用的方法有三参数、七参数以及十六参数等。
其中,三参数坐标转换适用于小范围地理信息转换,七参数转换适用于中等范围的转换,而十六参数坐标转换适用于大范围的转换。
根据实际情况,选择合适的坐标转换方法可以提高转换精度。
3. 坐标转换精度的控制坐标转换的精度对于测绘工作的准确性至关重要。
在进行坐标转换时,需要控制输入和输出数据的精度,避免精度损失造成的误差。
此外,还可以通过加密网控制误差的传播,提高转换结果的精度。
二、投影变换技巧1. 投影坐标的选择在进行投影变换前,需要选择合适的投影坐标系统。
常用的投影坐标系统包括等角圆锥投影、等距圆柱投影以及平面投影等。
不同的投影坐标系统适用于不同的地理区域和地图比例尺。
选择合适的投影坐标系统可以保证投影变换的准确性。
2. 投影变换参数的确定投影变换通常需要确定一些参数,如投影中心经纬度、投影标准纬度以及假东假北等。
这些参数的确定对于投影变换结果的准确性起到重要的影响。
根据实际情况,选择适当的参数可以提高投影变换的精度。
3. 投影变换的误差控制投影变换过程中可能会引入一些误差,如角度误差和距离误差等。
为了控制误差的传播,可以采用适当的网密度和投影校正方法。
此外,还可以通过包络点法进行误差评估,帮助改进投影变换结果。
三、案例分析1. 测量数据的坐标转换某地区在进行地形测量时采用的是一种特定的坐标系统,但是与其他应用系统不兼容。
地理(投影)坐标与屏幕坐标的转换
地理(投影)坐标与屏幕坐标的转换! (转载)计算机2010-04-01 09:25:16 阅读132 评论0 字号:大中小订阅刚接触到这个东东,确实头晕!什么地理坐标,投影坐标,屏幕坐标等等.......哎....地理知识中学学过(都不知道咋学的),数学貌似N多年不用也都还给老师了!确实悲哀.....唉....终于认真的研究了一下才算明白是怎么回事了!其实不要管什么地理坐标,投影坐标还是屏幕坐标,搞的你是非要知道天文地理似的才能去动手去做这个东东!原理掌握一个,那就是只用弄明白地理坐标和屏幕坐标的定义规则就OK 了...地理坐标定义规则:X轴(代表经度)向右递增,Y轴(纬度)向上递增,就好比小学学过的平面坐标(貌似又忘了,要重读小学了)吧?向左,向下的规则,这个不用我再阐述了吧,如果你还不明白,那我劝你还是真要去重读小学了....比我更悲哀,嘿嘿,总算找到一个知已啊....不容易啊...屏幕坐标定义规则:X轴向右递增,Y轴向下递增..可以看出,地理坐标和屏幕坐标的区别仅仅只是在于Y轴递增方向是相反的...(这就是不同).好了,现在我们开始转换他们吧. 这里强调一点的就是为了保证精度,地理坐标的度*3600换算成秒,所有的取值用double来计算,最后的结果再转换成int1.已知道屏幕的高(y)和宽(h),地理坐标区域的范围(maxLon,minLon,maxLat,minLat)..这里我们知道了这些已知的参数...2.我们可以算出每像素所代表的经度和纬度(有人称这个为比例因子):公式:scaleX = h/((maxLon-minLon)*3600) ----------X轴上每像素代表的经度秒数;公式:scaleY = y/((maxLat-minLat)*3600) -----------Y轴上每像素代表的纬度秒数;这两个比例因子就是两个坐标系之间的关系..3.很简单的一步了,那就是算出该地理坐标区域中的任何一点(lon,lat)在屏幕上的坐标了,怎么算?下面来讲:公式:screenX = lon*3600/scaleX; ---------屏幕坐标X轴坐标公式:screenY = lat*3600/scaleY; ----------屏幕坐标Y轴坐标, 怎么样?很简单吧?这里我们就算出地理坐标上任何一点转到屏幕上的坐标是多少了......还有最后一步,那就是我们要把该地理区域占满占个屏幕该怎么办呢?4. 接着我们需要该地理区域占满占个屏幕该怎么办呢公式:minX = minLon*3600/scaleX; 区域左边置最左端公式:minY = minLat*3600/scaleY; 区域上面置最上端5. 当地地理范围区域占满整个屏幕时,我们需要用到第三步计算出来的 screenX和screenY两个参数,该区域中的任何一点的公式如下:公式:X = screenX - minX = (lon - minLon)*3600/scaleX;由于纬度的方向和屏幕Y轴是相反的,公式:screenMaxLat = (maxLat - minLat)*3600/scaleY;公式:screenLat = (lat - minLat)*3600/scaleY;公式:Y = screenMaxLat - screenLat = (maxLat - lat)*3600/scaleY; 至于为什么是这个公式,我想大家仔细想想就明白了..6.总结:经纬度转屏幕坐标的最终公式如下:公式: X = (lon - minLon)*3600/scaleX;公式: Y = (maxLat - lat)*3600/scaleY;接着我们由上面的公式可以推出屏幕坐标转经纬度坐标公式如下:公式:lon = X * scaleX/3600 + minLon;公式:lat = maxLat - y* scaleY/3600;呼呼......终于写完了,由于要赶着睡觉,因为明天还要早起上班,可能写的还不够清楚,大家再仔细研究一下就能够明白了!。
Windows GDI中的坐标系
Windows GDI中的坐标系如果你用GDI输出过文本、位图、或者绘制过如直线、曲线的图形,那么你必然使用过坐标系。
屏幕分辨率为96dpi(dot per inch),打印机的分辨率通常为600dpi,而你使用如MoveTo(hDC,100,100);LineTo(hDC,1300,1300);在两者之上却可能生成完全相同的两条线(此即所见即所得WYSIWYG)。
就实现原理而言,坐标系在其中扮演着决定性的角色。
一、什么是GDI坐标系?首先从数学的角度看,GDI坐标系是二维笛卡尔坐标系,通过两条轴和原点就可以确定平面上任何一点的位置。
从使用的角度看,GDI坐标系是一种转换规则,把你所制定的逻辑数据转换成最终设备驱动所能使用的数据。
比如(100,100)这一点,经过实际的变换,在96dpi的屏幕上就可能是(9.6,9.6),在600dpi的打印机上则可能是(60,60)。
(注一)GDI坐标系由四层坐标空间组成(注二),按层次的高低分别为:世界坐标空间(World-Space):支持affine变换,应用于下面所说的页面坐标空间之上,只在NT类操作系统中有支持。
页面坐标空间(Page-Space):支持大量预定义的映射模式,是必然会被使用的坐标空间。
原点和相应的缩放比率的设置适合在页面坐标空间中进行设定。
世界坐标空间和页面坐标空间统称为逻辑坐标空间,是GDI用户所能够直接使用的坐标空间。
也就是说进行GDI输出时,你所指定的位置、大小等信息只能是相对于逻辑坐标空间的数据。
设备坐标空间(Device-Space):同设备上下文相关联的设备空间。
可以表示物理设备的一小块或者整个物理设备。
由于各种GDI输出是面向设备上下文的,逻辑坐标空间中的相关数据自然也就必须要转化为设备坐标空间中的数据。
物理设备坐标空间(Physical-Device Space):图形设备的物理表面的部分或全部。
也就是图形驱动程序所使用的坐标空间。
模拟GDI+中的坐标系转换
模拟GDI+中的坐标系转换附:转换类源代码[csharp] view plaincopying System;ing System.Collections.Generic;ing System.Drawing;ing System.Linq;ing System.Text;ing System.Threading.Tasks;7.space TestDraw9.{10.class MyTransform11.{12.private MyMatrix M = new MyMatrix(); //当前的转换矩阵13.//平移14.public void Translate(float dx, float dy)15.{16.float[,] K = {17.{1,0,dx},18.{0,1,dy},19.{0,0,1}20.};21.this.M = this.M.IR(new MyMatrix(K));22.}23.//缩放24.public void Scale(float sx, float sy)25.{26.float[,] K = {27.{sx, 0, 0},28.{0, sy, 0},29.{0, 0, 1}30.};31.this.M = this.M.IR(new MyMatrix(K));32.}33.//旋转34.public void Rotate(float sita)35.{36.float[,] K = {37.{(float)Math.Cos(sita), -(float)Math.Sin(sita), 0},38.{(float)Math.Sin(sita), (float)Math.Cos(sita), 0},39.{0,0,1}40.};41.this.M = this.M.IR(new MyMatrix(K));42.}43.44.//重置转换矩阵45.public void Rest()46.{47.this.M = new MyMatrix();48.}49.50.//计算新坐标51.public PointF CalculatePoint(PointF jmP)52.{53.MyPoint newP = this.M.IR(new MyPoint(jmP.X, jmP.Y));54.return new PointF(newP.P[0], newP.P[1]);55.}56.private MyPoint CalculatePoint(MyPoint jmP)57.{58.return this.M.IR(jmP);59.}60.}61.62.//点矩阵63.class MyPoint64.{65.public Single[] P = {0,0,1};66.public MyPoint(float x, float y)67.{68.P[0] = x;69.P[1] = y;70.}71.72.}73.//转换矩阵74.class MyMatrix75.{76.public Single[,] K = {77.{1,0,0},78.{0,1,0},79.{0,0,1}80.};81.public MyMatrix()82.{83.84.}85.public MyMatrix(Single[,] K)86.{87.for (int i = 0; i < 3; i++)88.{89.for (int j = 0; j < 3; j++)90.{91.this.K[i,j] = K[i,j];92.}93.}94.}95.//本矩阵 x R96.public MyMatrix IR(MyMatrix R)97.{98.Single[,] result = new float[3, 3];99.for (int i = 0; i < 3; i++)100.{101.for (int j = 0; j < 3; j++)102.{103.result[i, j] = this.K[i, 0] * R.K[0, j] + this.K[i, 1] * R.K[1, j] + this.K[i, 2] * R.K[2, j];104.}105.}106.return new MyMatrix(result);107.}108.//本矩阵 x P109.public MyPoint IR(MyPoint P)110.{111.Single[] result = new float[3];112.for (int i = 0; i < 3; i++)113.{114.result[i] = this.K[i, 0] * P.P[0] + this.K[i, 1] * P.P[1] + this. K[i, 2] * P.P[2];115.}116.return new MyPoint(result[0], result[1]);117.}118.119.//L x 本矩阵120.public MyMatrix LI(MyMatrix L)121.{122.return L.IR(this);123.}124.}125.}测试源代码:[csharp] view plaincopying System.Drawing;ing System.Windows.Forms;3.space TestDraw5.{6.public partial class Form1 : Form7.{8.public Form1()9.{10.InitializeComponent();11.}12.private MyTransform transform = new MyTransform();13.private void pictureBox1_Paint(object sender, PaintEve ntArgs e)14.{15.Graphics g = e.Graphics;16.17.//建模坐标系中四个点18.PointF p1 = new PointF(0, 0);19.PointF p2 = new PointF(5, 0);20.PointF p3 = new PointF(5, 2);21.PointF p4 = new PointF(0, 2);22.23.////绘图坐标系向建模坐标系转变24.//transform.Translate(100, 100);25.//transform.Scale(1, -1);26.//transform.Scale(10, 10);27.//transform.Rotate((float)(3.14 / 6.0));28.29.////计算点在绘图坐标系中的坐标30.//PointF np1 = transform.CalculatePoint(p1);31.//PointF np2 = transform.CalculatePoint(p2);32.//PointF np3 = transform.CalculatePoint(p3);33.//PointF np4 = transform.CalculatePoint(p4);34.35.////绘制矩形36.//g.DrawLines(Pens.Red, new PointF[]{np1, np2, np3, n p4, np1});37.38.//transform.Rest();39.40.g.TranslateTransform(100, 100);41.g.ScaleTransform(1, -1);42.g.ScaleTransform(10, 10);43.g.RotateTransform(30);44.45.g.DrawLines(new Pen(Color.Red, 1/10), new PointF[] { p1, p2, p3, p4, p1 });46.47.g.ResetTransform();48.}49.}50.}。
基于VC++的GDI常用坐标系统及应用
基于VC++的GDI常用坐标系统及应用在Windows应用程序中,只要进行绘图,就要使用GDI坐标系统。
Windows提供了几种映射方式,每一种映射都对应着一种坐标系。
例如,绘制图形时,必须给出图形各个点在客户区的位置,其位置用x和y两个坐标表示,x表示横坐标,y表示纵坐标。
在所有的GDI绘制函数中,这些坐标使用的是一种“逻辑单位”。
当GDI函数将结果输出送到某个物理设备上时,Windows将逻辑坐标转换成设备坐标(如屏幕或打印机的像素点)。
本文讨论了图形环境中的各个映射模式,包括它们是什么,怎么工作的,以及它们真正的含义。
一、基础知识(一)逻辑坐标。
逻辑坐标与设备无关,缺省地,一个逻辑单位等于设备中的一个象素。
它是实现“所见即所得”的基础。
例如,当程序员调用LineTo函数绘制25.4mm(1英寸)长的直线时,他只要使用合适的映射模式,那么就并不需要考虑输出的是何种设备。
若设备是VGA显示器,Windows自动将其转化为96个像素点;若设备是一个300dpi的激光打印机,Windows自动将其转化为300个像素点。
(二)设备坐标。
图形输出时,Windows将GDI函数中指定的逻辑坐标映射为设备坐标,在所有的设备坐标系统中,单位以像素点为准,水平值从左到右增大(正方向向右),垂直值从上到下增大(正方向向下)。
Windows中包括以下3种设备坐标,以满足各种不同需要:1、客户区域坐标,包括应用程序的客户区域,客户区域的左上角为(0,0)。
2、屏幕坐标,包括整个屏幕,屏幕的左上角为(0,0)。
屏幕坐标用在WM_MOVE 消息中(对于非子窗口)以及下面的Windows函数中:CreateWindow和MoveWindow(都对于非子窗口)、GetMessage、GetCursorPos、GetWindowRect、WindowFromPoint和SetBr ushOrg中。
用函数ClientToScreen和ScreenToClient可以将客户区域坐标转换成屏幕区域坐标,或反之。
测绘技术中的地图投影和坐标系转换方法
测绘技术中的地图投影和坐标系转换方法地图投影和坐标系转换是测绘技术中非常重要的内容,它们在地理信息系统(GIS)和全球定位系统(GPS)等领域得到广泛应用。
地球是一个近似于椭球体的物体,而地图则是对地球的平面展开,这就需要将地球的三维坐标转换为地图上的二维坐标。
地图投影是一种数学方法,通过在地球表面和投影平面上建立一一对应的关系,将地球上的地理要素映射到平面地图上。
不同的地图投影方法会产生不同的变形,但是在实际应用中可以根据需求选择合适的投影方式。
常见的地图投影方法包括墨卡托投影、等距圆柱投影和兰勃尔投影等。
墨卡托投影是一种最常见的地图投影方法,它将地球表面划分为无限多个等大的正方形,然后将每个正方形展开为一个矩形,在矩形上绘制地图。
墨卡托投影的优点是保持了方向的真实性和等角性,但它会出现面积扭曲的问题,即纬度越高,被投影到地图上的面积就越大。
等距圆柱投影是另一种常见的地图投影方法,它将地球表面投影到一个正方形或长方形的平面上。
等距圆柱投影保持了距离的一致性,也就是说地图上的两点之间的距离与地球表面上的距离相等。
但是等距圆柱投影不同纬度上的地图比例尺是不一样的,这会导致形状扭曲的问题。
兰勃尔投影是一种保留面积的地图投影方法,它将地球表面投影到一个圆锥面上。
兰勃尔投影在赤道附近的地区保持了形状的真实性,但是随着纬度的增加,会出现面积扭曲的问题。
这种投影方法常用于制作航海图和航空图。
在实际的测绘工作中,经常需要将不同坐标系下的地理数据进行转换和配准。
坐标系转换是指将某一坐标系下的地理数据转换为另一坐标系下的地理数据。
常见的坐标系包括地理坐标系、平面直角坐标系和高斯投影坐标系等。
地理坐标系是以地球为基准建立的坐标系,它使用经度和纬度来表示地理位置。
平面直角坐标系是以某一点为原点,以两条相互垂直的直线为坐标轴建立的坐标系,可以用来表示局部的平面地图。
高斯投影坐标系是根据地球椭球体的数据进行计算,采用高斯投影进行投影表达的坐标系,常用于大范围的地图制作。
基于高斯投影的坐标转换方法研究
基于高斯投影的坐标转换方法研究
高斯投影是一种常用的地理坐标转换方法,经过几个世纪的发展和改进,已经广泛应
用于地理测量、地图制作和导航等领域。
基于高斯投影的坐标转换方法研究,旨在探索如
何准确、快速地将不同坐标系统下的地理位置点转换为高斯投影坐标。
高斯投影方法最早由德国数学家高斯于19世纪初提出,是通过将地球表面视为椭球体来逼近地球形状,并将地球上的点投影到平面上进行坐标表示。
在高斯投影方法中,将地
球表面划分为多个带状投影带区域,每个投影带区域都使用不同的投影参数进行投影计算。
在进行高斯投影坐标转换时,首先需要确定所处的投影带区域。
基于高斯投影的坐标转换方法研究的关键是确定投影带区域的方式。
传统的方法是使
用经、纬度信息以及地理数据库中的投影带参数来确定所在的投影带区域。
但这种方法存
在着一些问题,如需要进行复杂的地理计算以确定所在的投影带区域,且存在边界问题,
导致部分点无法确定所在的投影带区域。
为了解决以上问题,一些新的方法被提出来,如基于地理位置信息的基准坐标系转换
方法和基于空间距离的坐标转换方法。
前者利用地理位置信息来判断所处的投影带区域,
并在转换过程中使用适当的投影参数。
后者通过计算地理位置点之间的空间距离来确定所
在的投影带区域,从而实现坐标转换。
基于高斯投影的坐标转换方法研究还需要考虑坐标转换的精确性和计算效率。
精确性
是指转换后的高斯投影坐标与原始地理位置点之间的误差,而计算效率则是指转换过程所
需的时间和计算资源。
为了提高精确性和计算效率,一些优化方法也被引入,如迭代算法
和并行计算等。
坐标变换技术在Windows GDI设计中的应用
个 属性 。对 于所有 的 映射模 式 , 以用如 下公 式 窗 口( 可 逻辑 ) 坐
标 转化 为视 口( 设备 ) 坐标 :
所 有的设备坐 标系都 以具体设 备 的像 素 为单位 , 水平轴 ( 轴 ) 即x
V w 。 = no - W n r) i p (Wi w x iOg e d
把 窗 口中 的坐 标 ( 逻辑 坐标 ) 化为视 口中的坐标 ( 转 设备坐 标 ) 。 视为 窗 口的客户 区域 , 但
是 。如 果 已经 用 G t no D 或 Cet C 得 了 一个 设 备 内 e Widw C r e 取 aD
容, 则视 口也可 以是 指整 窗 1坐 标或 者屏幕 坐标 。 ( O 是 客 3 点 0,)
12 设 备 坐 标 ( vc o r iae ) . DeieCo dn ts
标 映射 ” 。根据 转 换方 式 的不 同 , n o s Wid w 规定 了8 映 射模 式 种 ( p igMo e 。除了映射模式 外 , Ma pn d ) 与绘 制图形相 关的设备上下 文属性 还包括 窗 1原点 ( n o r i )视 口原点 ( e pr 0 3 Wid w O i n 、 g Vi ot - w
户 区域 ( 者整 个 窗 1 或 3或屏 幕 ) 的左 上 角 ,的值 向右 增 加 ,的 x y
值 向下 增加 。窗 口是基 于逻辑 坐标 的 ,其 单位 可 以是像素 、 毫
米 、 寸或 者任何 其 它单 位 。在G 绘 图 函数 中指定 的坐标 或 英 DI 参数 全部 为窗 口坐标 下的 值 。
r i) 窗 口范 围 ( n o xe t)视 1范 围 ( iw ot xe t) in、 g Wid wE tns 、 3 V e p r E tns4
基于高斯投影的坐标转换方法研究
基于高斯投影的坐标转换方法研究1. 引言1.1 研究背景在地理信息系统和测量领域,坐标转换是一个非常重要的问题。
由于地球是一个不规则的椭球体,地球表面的坐标系统是不均匀的。
在不同的测量和地图制作过程中,需要将不同坐标系统的数据进行转换,以确保数据的准确性和一致性。
由于地球表面的复杂性和不规则性,高斯投影的误差也会随之增加。
研究基于高斯投影的坐标转换方法是非常有必要的。
通过研究高斯投影的原理和参数确定方法,可以提高坐标转换的准确性和效率,从而在地图制作和测量领域中发挥重要作用。
1.2 研究意义高斯投影是一种地图投影方法,可以将地球表面上的三维地理坐标转换为二维平面坐标。
基于高斯投影的坐标转换方法在地图制作、地理信息系统和导航定位等领域具有重要应用价值。
通过研究这一方法,可以实现不同坐标系之间的坐标转换,促进地理空间数据的整合和共享,提高地图制作和数据分析的效率。
研究基于高斯投影的坐标转换方法,有助于深入了解高斯投影原理及其在实际应用中的优缺点。
通过探讨高斯投影参数的确定方法和坐标转换实验设计,可以验证其在不同地区和精度要求下的适用性和精度。
实验结果分析将为该方法的实际应用提供参考依据,为地理空间数据处理和分析提供支持。
研究基于高斯投影的坐标转换方法具有重要的理论和实践意义,有助于推动地理信息技术的发展和应用。
通过对这一方法的深入研究,可以完善地图制作和数据处理的技术体系,提高地理空间数据的利用效率,促进地理信息产业的发展和应用。
1.3 研究目的研究目的是为了探究基于高斯投影的坐标转换方法在地理信息领域中的应用效果。
通过对高斯投影原理的深入研究,我们可以更好地理解这一投影方法在地图制图和坐标转换中的作用机制,为地理信息系统的精准定位和地图测绘提供更可靠的基础。
通过研究高斯投影参数的确定方法,能够帮助我们更准确地进行坐标转换,提高地理信息数据的准确性和可靠性。
本研究的目的还在于设计一套完整的坐标转换实验方案,并根据实验结果进行分析与总结,以验证基于高斯投影的坐标转换方法的有效性和可靠性。
基于地理坐标的测绘数据的投影转换和坐标系转换
基于地理坐标的测绘数据的投影转换和坐标系转换导语:在测绘和地理信息系统(GIS)领域,人们经常需要将地理坐标转换为不同的投影和坐标系,以适应不同的需求。
测绘数据的投影转换和坐标系转换是进行空间分析和地图制图的关键步骤。
本文将介绍基于地理坐标的测绘数据的投影转换和坐标系转换的基本概念和方法。
一、什么是坐标系转换在进行测绘工作时,人们通常使用地理坐标来描述地球表面上的点位置。
地球是一个三维的球体,在不同坐标系统下,点的位置可能会产生误差。
坐标系转换是将一个点的地理坐标从一个坐标系转换到另一个坐标系的过程。
常用的坐标系包括WGS84、UTM等。
二、什么是投影转换由于地球是一个球体,将其表面投影到平面上会产生形状、距离和方向的变形。
为了解决这个问题,人们使用不同的投影方法将地球表面投影到平面上,以保持形状、距离或方向的正确性。
不同的投影方法适用于不同的地理区域,常见的投影方法包括Mercator投影、Lambert投影等。
三、投影转换的方法进行投影转换时,通常可以使用专业的测绘软件或地理信息系统软件来完成。
这些软件提供了各种坐标系统和投影方法的转换功能,用户只需输入原始坐标和目标坐标系的参数,即可进行转换。
此外,还可以使用编程语言(如Python)结合相应的库来编写转换函数。
四、坐标系转换的方法坐标系转换通常包括基准面和坐标系之间的转换。
在进行转换前,需要确定原始和目标坐标系的基准面和坐标轴方向。
一般来说,在进行坐标系转换时,需要进行参数的转换,如椭球参数和投影参数等。
这些参数可以通过测量、地图或数据库查询获取。
五、注意事项在进行投影转换和坐标系转换时,需要注意以下几点:1.选择合适的投影方法和坐标系,以保证转换结果的准确性和可靠性;2.进行转换时,要注意选择适当的数学模型和算法,以避免误差累积;3.在转换前,可以对原始数据进行预处理,如数据清洗、纠正等,以提高转换的精度;4.进行转换后,应进行结果的验证和误差分析,以确保转换的准确性。
投影坐标系统的选择与转换方法
投影坐标系统的选择与转换方法在地理信息系统(GIS)领域,投影坐标系统是一种重要的工具,用于将地球上的三维空间数据转换为二维平面数据。
选择合适的投影坐标系统对于地图的精度和可视化效果至关重要。
本文将介绍投影坐标系统的选择原则和一些常用的转换方法。
1. 投影坐标系统的选择原则在选择投影坐标系统时,需要考虑以下几个因素:1.1 地理范围不同的投影坐标系统适用于不同的地理范围。
例如,墨卡托投影适于大面积地图制作,而兰伯特投影适用于局部地图制作。
因此,在选择投影坐标系统时,首先要确定地图所涵盖的地理范围。
1.2 地图用途地图的用途也是选择投影坐标系统的重要因素。
不同的投影坐标系统对地图的保真度和形状有不同的要求。
例如,用于导航的地图需要保持方向的一致性,而用于面积比较的地图需要保持面积的一致性。
1.3 数据精度数据精度也影响着投影坐标系统的选择。
高精度的数据需要使用相应的投影坐标系统,以保持数据的准确性。
对于低精度的数据,使用普通的投影坐标系统就可以满足需求。
2. 常用的投影坐标系统下面介绍几种常用的投影坐标系统:2.1 墨卡托投影墨卡托投影是一种等角圆柱投影,适用于近赤道地区的大面积地图制作。
该投影保持了角度的一致性,但会产生南北方向的拉伸。
2.2 兰伯特投影兰伯特投影是一种圆锥投影,适用于局部地图制作。
该投影保持了面积和方向的一致性,但在离中心地区较远的地方会产生形状的畸变。
2.3 麦卡托投影麦卡托投影是一种等积圆柱投影,适用于大面积地图制作。
该投影保持了面积的一致性,但在高纬度地区会产生形状的畸变。
3. 坐标系统的转换方法坐标系统的转换是将一个投影坐标系统转换为另一个投影坐标系统的过程。
常用的转换方法有以下几种:3.1 数学转换数学转换是最常用的坐标系统转换方法。
它通过一系列的数学公式和变换参数,将一个坐标点从一个坐标系转换到另一个坐标系。
这种转换方法适用于简单的坐标系统之间的转换。
3.2 大地坐标转换大地坐标转换是将地球上的三维大地坐标(经度、纬度、高程)转换为平面坐标系的过程。
如何进行地图投影与坐标系转换
如何进行地图投影与坐标系转换地图投影与坐标系转换是地理信息系统(GIS)领域中的重要概念和技术应用。
它们在地图制作、空间分析和地理数据处理等方面起到关键作用。
本文将介绍地图投影和坐标系转换的基本原理、常用方法和应用场景,并探讨如何进行高效准确的地图投影和坐标系转换。
一、地图投影的基本原理地图投影是将地理空间的三维曲面投影到二维平面上的过程。
由于地球是个球形体,而平面是个二维曲面,所以在将地球投影到平面上时,必然会产生一些畸变。
地图投影的基本原理是通过数学方法将地球的曲面映射到平面上,使得地球上的地理现象在地图上能够呈现出来。
常见的地图投影方法包括圆柱投影、圆锥投影和平面投影。
圆柱投影将地球的表面展开成一个圆柱体,然后再将这个圆柱体展开成一个矩形平面,形成柱面投影。
圆锥投影则是将圆锥体展开成一个扇形或者六边形,形成锥面投影。
而平面投影则是将地球的表面投影到一个平面上。
不同的地图投影方法适用于不同的应用场景。
例如,在全球海洋表面测绘中常采用圆柱投影,而在大规模区域测绘中常采用圆锥投影。
而平面投影则主要用于局部区域的测绘。
二、坐标系转换的基本原理坐标系转换是将一个坐标系中的点的坐标转换到另一个坐标系中的过程。
在地理信息系统中,经纬度坐标系(地理坐标系)和平面坐标系(投影坐标系)是常见的两种坐标系统。
由于地球是个球体,所以在使用地理坐标系描述地球表面上的点时,需要使用经度和纬度两个坐标值。
而在使用投影坐标系描述地球表面上的点时,可以使用x和y两个坐标值。
由于地理坐标系和投影坐标系是不同的坐标系统,它们之间的坐标值不可互相通用。
因此,当我们需要在地理坐标系和投影坐标系之间进行转换时,就需要进行坐标系转换。
常用的坐标系转换方法包括正向转换和反向转换。
正向转换是将地理坐标系中的经纬度坐标转换为投影坐标系中的x和y坐标。
反向转换则是将投影坐标系中的x和y坐标转换为地理坐标系中的经纬度坐标。
坐标系转换的基本原理是通过一些数学公式和参数,将经纬度坐标与投影坐标进行相互转换。
测绘技术中的投影坐标转换方法解析
测绘技术中的投影坐标转换方法解析引言:在测绘技术中,投影坐标转换方法是一项重要的技术,它可以将地球上的经纬度坐标转换为更适合工程应用的平面坐标,进而实现地图的制作和测绘数据的处理。
在本文中,我们将探讨不同的投影坐标转换方法,包括经纬度坐标、笛卡尔坐标、高斯平面直角坐标以及UTM坐标,分析它们的原理、优缺点以及适用范围。
一、经纬度坐标经纬度坐标是最常见的地理坐标体系,以地球的纬度和经度来表示一个位置。
经度表示东西方向,纬度表示南北方向。
经纬度坐标可以直接用来表示地球上的位置,但对于工程测绘等应用来说,其不够精确,且计算复杂。
因此,在实际应用中,我们通常需要将经纬度坐标转换为其他坐标系。
二、笛卡尔坐标系笛卡尔坐标系是一个三维坐标系,由三个轴(x、y、z)和原点组成。
在地球测量中,我们通常将笛卡尔坐标系的z轴定义为地球的旋转轴,原点设置在地球的质心。
通过将经纬度转换为笛卡尔坐标系,可以方便地进行空间分析和计算。
但笛卡尔坐标系并不适用于大范围的地图制作,因为它不能考虑地球的曲率。
三、高斯平面直角坐标系高斯平面直角坐标系是一种平面坐标系,由x轴和y轴组成,其中x轴是东方向,y轴是北方向。
这种坐标系的特点是在局部范围内能够满足较高精度的测量要求。
高斯投影法是一种常见的转换方法,它通过将地球表面切割为小区域,然后在每个小区域内进行投影转换,实现从地理坐标到平面坐标的转换。
高斯投影法的优点是精度高,适用于小范围测量。
但在大范围的地图制作中,由于地球表面的曲率不同,高斯平面直角坐标系会出现较大的误差。
四、UTM坐标系UTM(通用横轴墨卡托投影)坐标系是一种世界范围内通用的投影坐标系统,在地图制作和测绘中被广泛采用。
UTM坐标系将地球划分为60个纵向带和6个横向带,每个带的中央经线为投影中心线。
利用UTM投影可以将经纬度坐标转换为平面坐标,在实际应用中具有较高的精度和准确性。
UTM坐标系适用于大范围的地图制作和测量,常用于军事、交通、测绘和GIS等领域。
GDI+坐标空间及其变换
GDI+坐标空间及其变换在视图和窗口中绘图或定位总是在一个二维坐标系进行,依据作用方法的不同,坐标有多种表示方法,并且各种不同坐标之间可以相互转换。
1.世界坐标系、设备坐标系和页面坐标系GDI+为我们提供了三种坐标空间:世界坐标系、页面坐标系和设备坐标系。
世界坐标系是应用程序用来进行图形输入输出所使用的一种与设备无关的笛卡尔坐标系。
通常,我们可以根据自己的需要和方便定义一个自己的世界坐标系,这个坐标系称为用户坐标系。
例如,前面DrawLine(&newPen, 20, 10, 200, 100);中的坐标都是以这个用户坐标系为基准的,默认时使用像素为单位。
设备坐标系是指显示设备或打印设备坐标系下的坐标,它的特点是以设备上的象素点为单位。
对于窗口中的视图而言,设备坐标的原点在客户区的左上角,x坐标从左向右递增,y坐标自上而下递增。
由于设备的分辨率不同,相同坐标值的物理位置可能不同。
如对于边长为100的正方形,当显示器为640 x 480和800 x 600时的大小是不一样的。
页面坐标系是指某种映射模式下的一种坐标系。
所谓映射是指将世界坐标系通过某种方式进行的变换。
默认时,设备坐标和页面坐标是一致的。
2.坐标映射和坐标原点的设置为了能保证打印或显示的结果不受设备的影响,GDI+定义了一些映射方法和属性来决定设备坐标和页面坐标之间的关系。
这些映射方法和属性有:SetPageUnit和GetPageUnit这两个属性函数是用来设置和获取每个单位所对应的实际度量单位。
它通常可以有下列的值:UnitDisplay -- 每个页面单位为1/75英寸;UnitPixel -- 每个页面单位为1个像素,此时页面坐标与设备坐标相同;UnitPoint -- 每个页面单位为1/72英寸;UnitInch -- 每个页面单位为1英寸;UnitDocument -- 每个页面单位为1/300英寸;UnitMillimeter-- 每个页面单位为1毫米。
gdi坐标系
gdi坐标系GDI(Graphics Device Interface)是Windows操作系统中的一个图形设备接口,它提供了一组函数和数据结构,用于在屏幕上绘制图形和文本。
GDI坐标系是GDI中用于描述图形和文本位置的坐标系,它与屏幕坐标系有所不同。
在GDI坐标系中,原点位于左上角,x轴向右延伸,y轴向下延伸。
这与屏幕坐标系相反,屏幕坐标系的原点位于左上角,x轴向右延伸,y轴向下延伸。
因此,在使用GDI绘制图形和文本时,需要将屏幕坐标系中的位置转换为GDI坐标系中的位置。
GDI坐标系的单位是逻辑单位(logical unit),它是一个抽象的单位,与屏幕分辨率无关。
在GDI中,逻辑单位的大小由设备环境(device context)决定,设备环境是一个与设备相关的数据结构,用于描述绘图设备的属性和状态。
在创建设备环境时,可以指定逻辑单位的大小,通常使用像素作为逻辑单位。
在GDI中,可以使用以下函数将屏幕坐标系中的位置转换为GDI坐标系中的位置:1. SetMapMode:设置设备环境的映射模式,映射模式决定了逻辑单位和物理单位之间的转换方式。
2. SetViewportOrgEx:设置视口原点,视口是设备环境中用于显示图形和文本的区域,视口原点是视口左上角的坐标。
3. SetWindowOrgEx:设置窗口原点,窗口是设备环境中用于绘制图形和文本的区域,窗口原点是窗口左上角的坐标。
4. DPtoLP:将设备坐标(即屏幕坐标系中的坐标)转换为逻辑坐标(即GDI坐标系中的坐标)。
5. LPtoDP:将逻辑坐标转换为设备坐标。
使用这些函数可以方便地在GDI坐标系中绘制图形和文本,同时也可以实现屏幕坐标系和GDI坐标系之间的转换。
总之,GDI坐标系是GDI中用于描述图形和文本位置的坐标系,它与屏幕坐标系有所不同。
在使用GDI绘制图形和文本时,需要将屏幕坐标系中的位置转换为GDI坐标系中的位置。
可以使用一些函数来实现这种转换,方便地在GDI坐标系中绘制图形和文本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数, e, f); }
Matrix myMatrix = new Matrix(缩放系数, 0.0f, 0.0f, -缩放系 pGraphics.Transform = myMatrix;
public static void 设置全局系数() {
float scaleX = 半宽 / 参数.桌面宽 * 2; float scaleY = 半高 / 参数.桌面高 * 2; float scale = scaleX; if (scaleY < scaleX) scale = scaleY; scale *= 0.98f; 缩放系数 = scale; 屏幕中点绘图坐标_X = 参数.桌面宽 * 0.5f; 屏幕中点绘图坐标_Y = 参数.桌面高 * 0.5f; } } }
3. Device Coordinate Space. 设备坐标系是在其上进行绘制的物理设备(如屏幕或 纸张)所使用的坐标系。这个空间有系统控制,转换在Page空间中的坐标到屏幕、 打印机可以使用的空间。也许屏幕、打印机的分辨率不一样,那么同样一英寸可 能在设备上显示不一样多的点。
当调用 myGraphics.DrawLine(myPen, 0, 0, 160, 80) 时,传递给 DrawLine 方法的点((0, 0) 和 (160, 80))位于世界坐标空间内。在 GDI+ 可以在屏幕上 绘制线条之前,坐标先要经过一系列变换。一种称为“世界变换”的变换可将世界 坐标转换为页面坐标,而另一种称为“页面变换”的变换可将页面坐标转换为设备 坐标。
半宽 = 宽 / 2; 半高 = 高 / 2; } public static void 设置显示参数(Graphics pGraphics) { pGraphics.PageUnit = GraphicsUnit.Pixel; float e = 半宽 - 缩放系数 * 屏幕中点绘图坐标_X; float f = 半高 + 缩放系数 * 屏幕中点绘图坐标_Y;
在GDI设备描述表(device context,DC)包含了特定的显示设备的信息、图 像的显示属性及特定的显示窗口等信息,用GDI编程的第一步必须获取当前的设 备描述表的句柄(hDC),然后将该句柄作为参数调用GDI提供的API函数。在 GDI+中,获取设备描述表后创建Graphics对象并继承其方法,Graphics对象的作 用与设备描述表相同,但使用上有很大不同,前者是基于句柄的技术,而后者是 基于面向对象的技术。Graphics对象是与特定的窗口信息相联系,包含特定的图 形显示信息,但是它不与特定的笔(pen)、刷(brush)、图像(image)和字体 (font)捆绑在一起。在GDI中,要用笔画线必须用SelectObject函数将特 定的笔对象选进获取的设备描述表,这被选的笔将用于后面画的所有的线;在 GDI+中,笔、刷、图像和字体等对象是作为参数传递给Graphics对象的方法。
myGraphics.TranslateTransform(100, 50); myGraphics.DrawLine(myPen, 0, 0, 160, 80);
页面变换将页面坐标映射到设备坐标。 Graphics 类提供了用于操作页面变换的 PageUnit 和 PageScale 属性。 Graphics 类还提供了两个只读属性: DpiX 和 DpiY,用于检查显示设备每英寸的水平点数和垂直点数。可使用 Graphics 类的 PageUnit 属性指定除像素以外的其他度量单位。
基于GDI+的投影坐标与屏幕坐标的转换研究
专 业:地图学与地理信息系统 姓 名:陈艳梅 学 号:2008056 指导老师:刘德儿
二、投影坐标与屏幕坐标的转换
1.投影坐标系(Projected Coordinate Systems) 投影坐标系使用基于X,Y值的坐标系统来描述地球上某个点所处的位置。这
个坐标系是从地球的近似椭球体投影得到的,它对应于某个地理坐标系。投影坐 标系由以下参数确定:
地理坐标系(由基准面确定,比如:北京54、西安80、WGS84) 投影方法(比如高斯-克吕格、Lambert投影、Mercator投影) 一般主要 用高斯—克吕格坐标。高斯—克吕格投影的直角坐标系统是按经差6°分带单独 投影,故各带坐标也成独立系统。在投影带中,以中央经线为纵轴(x),赤道 为横轴(y),两轴交点为原点。 2. 屏幕坐标(Screen coordinate) 在Windows 应用程序中涉及到的设备坐标系有三种:屏幕坐标系,窗口坐标 系和用户区坐标系。屏幕坐标系以整个显示器屏幕作为坐标区域,坐标原点在屏 幕的左上角,X 轴水平向右为正,Y轴竖直向下为正。屏幕坐标和应用程序无关, 对所有的应用程序是唯一的。 3.坐标的转换 在 GDI+中,屏幕坐标系统与数学中的坐标系统并不一样,要在 GDI+中使用 投影坐标系统,则需要在屏幕坐标的基础上进行坐标的变换,例如旋转,平移等。 假定想使用原点位于工作区的主体而非左上角的坐标系统。例如,让原点位 于距工作区左边缘 100 像素、距顶部 50 像素的位置。下图显示了这样的坐标 系统。
Keywords: GDI + technology, coordinate transformation, the screen
coordinates, Projection Coordinates
一、GDI+技术概述及 GDI+中的坐标系
GDI(graphics device interface)为图形设备接口,是Windows提供给应用程 序的编程接口,使得编程人员不需要与显示器、打印机等图形设备打交道。GDI+ 是GDI的改进型,它是基于类的应用程序编程接口。GDI+已包含在Windows XP 和服务器操作系统中,对在Windows.NE4.0 SP6,Windows2000, Windows98和Windows ME等操作系统中使用GDI+的用户需要下载GDI+的相关 软件安装。GDI+这种新型的图形设备接口与GDI比较,一方面增加了新的功能 如梯度刷(gradient brushes)和alpha blending等,这些新的功能能够让用户创建 全新的用户桌面体系,能够轻易地完成二维或三维的图形处理,为桌面带来一种 数字化的图片;另一方面修改了编程的模式,新的模式使用起来更加方便、实用 性更强。
在GDI+中有三个分开的坐标系空间(世界、页面和设备): 1. World coordinate space. 世界坐标是用于建立特殊图形世界模型的坐标系, 也是在 .NET Framework 中传递给方法的坐标系。它是图像系统中的二维空间。 World coordinate是通过两个浮点表示的抽象值。基本上,绘制任何东西最终都 会转换到这个空间。 2. Page Coordinate Space. 页面坐标系是指绘图图面(如窗体或控件)使用的 坐标系。 该空间用来对应真实世界的尺度。可以设定Page Coordinate来代表点、 英寸、毫米等等。这就是GDI+是个独立的解决方案的来源。可以设置使用的 PageUnit,调整PageScale来达到这一点.
以下是以 C#语言环境下进行的屏幕坐标经过旋转和平移等手段转换成高斯投影 坐标:
namespace 坐标转换 {
static class 坐标系 {
static public float 缩放系数 = 1.0f; static public float 屏幕中点绘图坐标_X; static public float 屏幕中点绘图坐标_Y; static float 半宽; sta大小(float 宽, float 高) {
当调用 myGraphics.DrawLine(myPen, 0, 0, 160, 80) 时,可得到下面的 插图中所显示的线条。
用于将世界坐标映射到页面坐标的世界变换保存在 Graphics 类的 Transform 属性中。在前面的示例中,世界变换是在 x 方向平移 100 个单位、在 y 方向 平移 50 个单位。下面的示例设置了 Graphics 对象的世界变换,然后使用该 Graphics 对象绘制前图中显示的线条:
this paper to study the projection coordinate system, the screen
coordinate system and in the c # of the Miao Xu studied on the basis of
the two conversions.
基于 GDI+的投影坐标与屏幕坐标的转换研究
摘要:概述了 GDI+技术以及其三种坐标系,对于本文所要研究的投影坐标系、
屏幕坐标系进行了描叙以及在 C#基础上研究了二者的转换。
关键词:GDI+技术、坐标转换、屏幕坐标、投影坐标
Abstract: The GDI + technology and its three kinds of coordinates, for
参考文献:
[1]邓宇军,凌海风,迟长啸. C#语言程序设计基础. 北京:清华大学出版,2008. [2] 赵森,许振宇,张秉权A 地理坐标与直角坐标相互转换的算法[J].火力与 指挥控制,2001,26(4):64- 66. [3]ChristianGraus.StartingwithGDI+[EB/OL].http///v epp/gdiphus/startinggdiphus.asp CodeProject.2002-05 [4]Mashesh Chard.GDI+图形程序设计[M].北京:电子工业出版社,2005 [5]CodeMaze.Hints get GDI+running[EB/OL].http///useritens/CodeMaze.asp CodeProject.2002-05