第二章-计算机地图制图的基本方法1_第1页
第二章-计算机地图制图的基本方法1_第2页
第二章-计算机地图制图的基本方法1_第3页
第二章-计算机地图制图的基本方法1_第4页
第二章-计算机地图制图的基本方法1_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/60,计算机制图是以制图理论为指导,按照一定的数学规则,利用计算机及其输入输出设备作为制图工具,利用数据库技术和图形的数字处理方法,实现地图信息的获取、转换、传输、识别、存储、处理和显示,最终以自动或人机结合的方式输出地图。第二章计算机制图的基本方法,2/60,第一节坐标变换1,概述,第二章计算机制图的基本方法计算机制图的制图系统包括数据采集设备、计算机、输入输出设备和各种相关软件。数据收集由勘测场完成,地图生成过程由计算机系统完成。计算机系统制图中使用的图形显示设备、图形输出设备、图形输入设备和测量数据都涉及到定位(点)和坐标系的概念。大地坐标系用于测量数据的采集和制图,而用户坐标系或不同于大地坐标系的设备坐标系用于上述计算机外围设备,当使用这些设备输入、显示或输出地图时,不可避免地需要不同坐标系之间的坐标转换。在大比例尺数字测图系统中,大地坐标为高斯-克鲁格平面坐标系或独立坐标系。制图结果通常是在平面地形图上添加高程和绘制等高线。由于计算机屏幕也相当于观察者的平面绘图坐标,二维地图的输入过程、屏幕输出或绘图仪输出类似于在绘图上绘制或表示的地图。大地坐标和设备坐标的区别:不同大地坐标系统在空间和平面位置的原点可以根据测量的实际需要取一个参考点。该值可以在很大范围内变化。绘图坐标均基于绘图设备的固定参考点(显示屏的左上角点和绘图仪的左下角点),坐标值的范围非常小。坐标系的比例尺和取值范围是不同的,大地坐标一般以m和km为单位,数值可以是任何实数,而绘图设备的坐标单位和取值范围与绘图设备的技术性能有关。设备的最小分辨率以像素显示、绘图仪作为绘图笔移动的步长等单位表示,取值范围一般为正整数。水平方向(屏幕坐标系的x轴)的数值范围为0639,垂直方向(屏幕坐标系的y轴)的数值范围为0 479,显示分辨率为640480。滚轮绘图仪在滚轮轴向(X轴)的数值范围取决于滚轮的长度,而在进纸方向(Y轴)的数值范围可能非常大。当野外测量采集的大地坐标数据需要经过处理后以图形方式输出时,需要进行坐标转换,将大地坐标转换成绘图坐标,以符合各种图形输出设备的绘图坐标范围。当从图形设备输入数据时,测绘坐标必须转换成大地坐标,因此坐标转换是数字测绘软件中常用的算法。大地坐标与设备坐标之差,5/60,2,从大地坐标系到屏幕坐标系的变换,2,从大地坐标系到屏幕坐标系的变换,图(a)大地坐标系中某一点P(Xt,Yt),其地图的范围由其西南角坐标(Xn,Yn)和东北角坐标(Xm,Ym)决定;(b)屏幕坐标系中的点P(Xp,Yp)。显示屏上图片框的显示范围由左上角坐标(X0,Y0)和右下角坐标(X1,Y1)确定。大地坐标系到屏幕坐标系的转换公式为:6/60、3。从大地坐标系到绘图仪坐标系的转换。由于Kx和Ky的值不同,取较小的一个作为变换系数。图1(c)示出了绘图仪坐标系中的点P(Xh,Yh)。绘图仪上绘图的范围由左下角坐标(Xa,Ya)和右上角c决定4.对于二维平面图形,同一坐标系的变换、坐标平移变换、比例变换和同一坐标系的旋转变换相对简单。相应的变换公式如下:8/60、(1)坐标平移变换,其中:x,y坐标x ,y -坐标 x,y-原坐标系中新坐标原点的位置。如图(a)所示,9/60,(2)坐标比例变换,其中:(x ,y ,(x,y)-新旧坐标系中的坐标Kx,ky-新旧坐标在x轴和y轴方向上的单位长度之比。如图(b)、(10/60)、(3)坐标旋转变换,新旧坐标系的原点是同一点。然而,相应坐标轴之间的夹角为,即坐标轴旋转。将逆时针方向设为的正方向,如图(C)所示。11/60,第2节,绘制图形的数学基础,第1部分,绘制直线的功能,计算机系统中的图形输出设备,可以识别程序中绘制直线的指令,在图形屏幕或绘图笔上绘制相应的直线段。绘图时,通常需要根据输出图形的比例要求转换绘图坐标。通过分别控制x和y方向上的比例系数,可以对图形进行线性变换。平面直线可以由两个点唯一确定,因此绘制直线的功能通常只需要两个参数(两点的坐标)。同时,由于数字绘图软件主要处理直线段,直线函数的变量是直线段两端点的坐标。绘制直线函数的一般形式是:12/60,第2节,绘制图形的数学基础,第2节,绘制直线的算法。在图形设备上生成直线时,根据直线的延伸方向,连续生成光斑的轨迹或画出微小的线段。光点之间的距离和绘图笔移动的距离称为步长。实际生成的直线由连续像素或连续多段线组成。由于图形设备的分辨率限制,实际生成的点可能偏离直线的理论位置。为了保证直线生成的质量,除了使用高质量的计算机设备外,还应采用高质量、高效率的算法。画直线有许多算法。这里有两个更常用的算法。13/60,点,N1斜率为,由于 ,tantan,N1线位于NM线之上,下次在x方向画一个阶跃位移;如果=,即tan=tan,则该点位于NM方向,下次它将在x方向向前移动一步。当 ,即tan0和xm0时,点I的位置偏差可由下式确定:仍然从点n开始,沿y方向画的单位步长到达点1,点1的坐标为(xn,yn 1),判别式为:从点1向x方向步进一个单位到达点2,点2的坐标为(xn 1,yn 1),判别式为:第2节,图形绘制的数学基础, 直线的理论位置上有m个点,实际位置上有一个点。 其中i=1,2,3.n,坐标单位是绘图仪的步长,其斜率差为:15/60,等等。第一象限中的偏差鉴别的简化公式可以如下分析和获得:当fi=0时,在x方向上给出单位步长:fi 1=fi-ym。在第二部分,图形绘制的数学基础,以及对于其他象限,可以总结出相应的简化判别公式,如表1中的偏差判别公式和表1中的表1。16/60,2,平面分割法,基本思想:用直线f(x,y)=0将平面上的点分成三种情况,即平面上的点在直线之上,平面上的点在直线之下,点在直线之上。用直线方程f(x,y)判断:当点满足f(x,y)0时,点在直线上方的平面上;当该点满足f(x,y)0时,该点位于直线下方的平面内;当该点满足f(x,y)=0时,该点在一条直线上。第2节,绘图的数学基础。画画的时候根据步长选择方式的不同,该算法可分为简单差分进化算法和对称差分进化算法。对于直线y=f(x),其一阶导数为df/dx=y/x=k(k为常数),第2节,图形绘制的数学基础,18/60、(1)简单DDA算法简单DDA算法选择|x |和|y |中的较大者作为步长。一般的判断标准是:当直线斜率的绝对值| k | 1(k=dy/dx=y/x)时,选择|y |作为单位步长。这样,每一步都可以在一个方向上移动至少一步,以避免重复绘制相同的点。为了避免除法,人们设计了一种对称的DDA算法:当一条直线的两个端点是N(xn,yn),M(xm,ym)时,选择一个整数N,使下面的公式成立:虽然上面的公式中有除法,但除数是2n,这很容易通过算术右移运算实现;使用下面的公式进行算术左移,我们还可以计算n:20/60,第2节,绘制图形的数学基础,第3节,生成圆和弧的算法。生成圆和圆弧函数的一般形式有:圆的具体表达式有:(1)中心坐标和半径表达式;(2)使用圆上三个点的坐标表示。圆弧的表达式包括:圆心、圆弧起点和中心角;(2)圆弧起点、终点和圆弧任意点的表示等。在计算机图形输出设备上,也有许多生成圆或弧的算法,如逐点比较法、布雷森海姆法等。第2节,绘制图形的数学基础,1。逐点比较法生成圆弧的基本思想类似于直线逐点比较法。从起点开始,将每一步与理论圆弧进行比较,根据生成点的位置偏移确定下一步的方向,并绘制下一条线段。这样画出的弧实际上是一条阶梯状的折线,但是由于步长较小(0.1毫米),人眼看起来像一条平滑的曲线。Bresenham算法的主要思想是从圆弧的起点开始选择每一步变化最大的方向,并在决定下一步的方向和单步之前确定当前点是位于圆的内部、上面还是外面。用于确定点和圆的相对位置的判别函数如下:当点位于圆内时,当点位于圆外时,当点位于圆上时,如果中点m位于圆外,则SE点更接近圆弧;如果点m在圆内,点e更靠近圆弧。如果d=0,SE是所画圆弧的下一个点,其坐标是下一次判断中点的函数,24/60,第二部分,绘图的数学基础,和4。任何曲线的生成的简要描述,以及用于生成任何曲线的算法,通常使用曲线上或附近已知的几个控制点的坐标,第一教师在曲线位置形成折线,然后平滑折线,这也是所谓的曲线拟合算法。在计算机制图过程中,在制图编辑过程中会遇到画框划分和某一区域局部放大的问题。这些问题要求确定某个区域并显示该区域中的图形,同时删除该区域之外的图形(不显示或以部分显示)。这就是所谓的图形剪辑。这里提到的区域也称为窗口,根据区域的形状窗口分为矩形或任意多边形。图形剪辑的基本目的是清除窗口外的图形。图形裁剪的基本过程:首先要确定图形是否在窗口中,计算图形元素与窗口边界线的交点,正确选择显示部分的图形,并在指定的形状区域(窗口)显示内容。第一,图形裁剪的基本理论,26/60,第三节,图形裁剪,第二,线段、圆和曲线的裁剪,1,基本原理,判断图形是否在窗口中,算法简单,对于矩形窗口有更多的用途,只需要做四个坐标的比较,满足下面的公式,满足条件,然后选择,否则放弃。其中:(x,y)是识别点,(xmin,ymin)和(xmax,ymax)是矩形窗口的最小和最大坐标值。由于曲线可以看作是由一组短直线组成的,所以寻找直线与矩形窗口边界线交点的算法是计算图形与矩形窗口交点的基本算法。该算法可用以下公式表示:27/60,第三节,图形裁剪,其中:(x,y)是交点坐标,A(xa,ya),B(xb,yb)是某一边界线的端点,M(xm,ym),N(xn,yn)是直线的两个端点。从上面的公式可以看出,图形裁剪的原理并不复杂,但是图形裁剪的算法非常复杂。裁剪算法软件开发中最重要的是计算速度。基本思想是将图形所在的平面分成九个区域,给每个区域一个由四个数字组成的数字,每个数字代表一个方向。0000代表一个窗口,如图5所示,1001代表左上角,0110代表右下角,等等。第一位1表示它位于窗口的上边框之上,第二位1表示它位于窗口的上边框之下,第三位1表示它位于窗口的上边框的右边,第四位1表示它位于窗口的上边框的左边,如果所有4位都是0,则它位于窗口内(包括窗口上方)。如果两个端点的区域代码都由零组成,则在窗口中取直线,如图6中的线段1所示。如果两端区号的逻辑乘法不为零,则直线在窗口外的同一侧被丢弃,如线段4;如果逻辑乘法为零,则直线和窗口边界线有交点,如线段2、3和5,需要下一步判断。为了判别线段与窗口的关系,首先根据公式(3-1)确定线段的两个端点所在的区域,并在端点前加上相应的区号,然后进行以下测试:31/60,对于第5行,根据公式(3-2)找到与边线的交点m,省略AM段,在步骤判断BM段, 然后在步骤中找到与边线的交点n,省略MN,在步骤中判断BN段,以BN为可见段。 线段2和3应该像线段5一样被判断,并最终被丢弃。32/60,第3节,图形裁剪,和(2)中点分割,也称为二等分,即把直线一分为二,接近直线和窗口边界线与中点的交点,然后找到对应于直线两端的最远可见点(位于窗口中的点)。两个最远可见点之间的部分是要获取的线段,其余部分被丢弃。33/60,第3节,图形裁剪,计算p1和p2的中点pm。pm是可见点,因此pmp2再次被二等分,并且计算的中点是Pm。如果Pm是不可见点,则pmp m将在下一次被二等分以获得新的中点Pm。下面的二等分在Pmp”m上执行。在这样的重复之后,由当前和最后两个计算中心计算的点pm2是相对于p1最远的可见点。对p1pm2进行同样的半搜索,直到相对于pm2最远的可见点pm1。Pm1pm2是剪切窗口中的可见部分。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论