西安电子科技大学《计算机图像显示技术》讲 图形显示软件1_第1页
西安电子科技大学《计算机图像显示技术》讲 图形显示软件1_第2页
西安电子科技大学《计算机图像显示技术》讲 图形显示软件1_第3页
西安电子科技大学《计算机图像显示技术》讲 图形显示软件1_第4页
西安电子科技大学《计算机图像显示技术》讲 图形显示软件1_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

计算机图形显示技术主讲徐青西安电子科技大学雷达信号处理国防科技重点实验室1图形显示软件图形软件的地位图形软件的分类常用术语图形软件开发方法直线的生成算法逐点比较法数值微分法2图形显示软件

——概述图形软件的地位3图形显示软件

——概述图形软件的地位计算机图形系统是计算机硬件(包括中央处理机、图形输入输出设备),以及软件(包括系统软件和图形软件)的集合。图形软件是图形系统的一个重要环节,在很大程度上决定着整个系统的功能速度和适应能力。4图形显示软件

——概述图形软件的地位计算机图形系统是由计算机硬件、计算机系统软件、图形软件和图形设备组成的集合。硬件系统操作系统基础软件图形软件系统5图形显示软件

——概述图形软件的作用与分类图形软件的作用或任务主要体现在三个方面:1、驱动程序:对图形输入输出设备进行驱动和控制,完成基本的图形输入输出功能。这部分程序通常称作设备驱动程序,通常用汇编语言编写,由制造厂商提供,大多固化在图形设备上。例如打印机控制程序、微机显示卡的BIOS和驱动程序。6图形显示软件

——概述图形软件的作用与分类2、通用软件包依据不同设备的性能和特点,努力达到最佳的图形输入输出效果(高速、逼真),一般通过建立通用的图形编程软件包来实现。有时通过扩充现有高级语言的图形语句也可以达到同样的目的,但可移植性较差,因而很少采用。7图形显示软件

——概述图形软件的作用与分类2、通用软件包通用图形软件包起着承上启下的作用。它利用设备驱动程序加以整合、提高和概括,提供包括图形输出、输入、属性、变换、观察(裁剪)以及通用控制等各类子程序,涵盖建立和管理图形所需的各种功能,为应用软件包的开发提供有力的支持。8图形显示软件

——概述图形软件的作用与分类3、应用软件包通过人机交互方式,在操作者的控制下,完成所需的图形应用程序。它所需要的是供非专业人员使用的成套的图形应用软件包,如CAD软件包、医学图像诊断软件包等。良好的人机界面和系统综合性能是图形应用软件首要考虑的因素。9图形显示软件

——概述常用术语图元图元又称输出图元(OutputPrimitive),是组成图形的基本成分的总称。包括字符串和点、直线段、圆、曲线、填充区域等几何成分。生成输出图元的子程序是构造图形的基本工具。10图形显示软件

——概述常用术语属性属性(Arrtibute)是指输出图元的特性,它描述了一个特定图元是怎么被显示的。常用属性包括亮度、色彩、线型、文本类型和区域填充模式等。通用图形软件包里的子程序可用来为单个图元或成组的图元设置属性。11图形显示软件

——概述常用术语结构(图段)、对象多个具有一定逻辑关系的图元构成结构(Structure)或图段(Segment)。一个相对独立的图形单元成为一个对象(Object)。可对结构等执行有关的操作,如建立、修改和变换等。12图形显示软件

——概述常用术语坐标系坐标系即设计和描述图形时所采用的参照系,用来说明图形对象的相对位置、大小和方向。在图形设计中,最常采用的是笛卡尔坐标系,但需要针对不同的场合使用不同的尺度和量纲。13图形显示软件

——概述常用术语坐标系构造单个物体时,采用相应的建模坐标系或局部坐标系;单个形状一旦被指定,则可采用一参考坐标系,称为世界坐标系,将该物体放入场景的适当位置;最后,将该场景的世界坐标描述变换到与输出设备对应的设备坐标系来输出或显示。14图形显示软件

——概述常用术语坐标系设备坐标系分两种:规范化设备坐标系:独立于任何特定的设备,坐标取值范围固定为0~1;特定设备坐标系:必须与输出设备的尺寸和分辨率等相适应。对视频监视器而言,屏幕坐标系满足:15图形显示软件

——概述常用术语几何变换(GeometicTransformation)是指改变场景中一个图形对象的大小、位置或方向。建模变换(ModelingTransformation)是利用按建模坐标给出的对象描述来构成场景。观察变换(Viewing

Transformation)是用来制定一种观察和视图在输出显示区域出现的范围。16图形显示软件

——概述图形软件的开发方法目的一个良好的图形应用软件,应该具备所需的图形功能、友好的人机界面和良好的程序结构。在开发阶段便于设计和调试,在使用时易学易用,便于维护和移植。17图形显示软件

——概述图形软件的开发方法1、子程序包以现有的高级语言为基础,扩充处理图形的子程序包目前已有GKS、PHIGS、GL等多种图形标准化程序包可供使用,开发者只需按规则调用所需的子程序,便可完成图形的显示、绘制和各种图形设备的控制以及人机交互等这种方式在实际中使用得较多,所开发的软件便于移植和推广,但执行速度较慢18图形显示软件

——概述图形软件的开发方法,主要采用以下三种方式:2、高级语言选定一种高级语言,在处理图形的语句和数据类型等方面进行扩充。目前普遍使用的C、VB、VC等高级语言已经在图形生成及控制方面进行了扩充,以具备较强的图形处理功能。适用于中、小型应用软件的开发,所开发的软件比较简练、紧凑、执行速度较快,缺点是可移植性较差。19图形显示软件

——概述图形软件的开发方法3、专用的高级图形语言针对特定的设备配置,设计专用的高级图形语言,可以达到最佳的效果。与简单的命令语言相比,它的功能更强。与子程序包相比,它的执行速度更快,效率更高。这种方式的缺点是系统开发量大,难以移植,主要用于专用图形系统的开发。20图形显示软件

——概述直线的生成算法在数学上,理想的直线是一条由无穷多个无限小的连续的点组成。21图形显示软件

——概述直线的生成算法但在光栅显示平面上,我们只能用二维光栅格网上尽可能靠近这条直线的像素点的集合来表示它每个像素具有一定的尺寸,是显示平面上可被访问的最小单位,它的坐标x和y只能是整数,也就是说相邻像素的坐标值是阶跃的而不是连续的

22图形显示软件

——概述直线的生成算法直线的扫描转换,就是要找出显示平面上最佳逼近理想直线的那些像素的坐标值,并将这些像素置成所要求的颜色。23图形显示软件

——概述直线的生成算法由于一幅图中可能包含成千上万条直线,所以要求绘制算法应该:1、最接近数学上的直线2、沿着线段分布的像素应均匀3、画线速度尽可能的快

24图形显示软件

——概述像素不均匀的例子如右图所示,对同样长的线段,如果进行图中的扫描转换,就会因为斜率的不同,产生的像素个数不相等,这样将导致像素亮度分布不均匀。25图形显示软件

——概述直线的生成算法——逐点比较法逐点比较法就是在绘图的过程中,绘图笔每走一步就与规定图形进行偏差比较,然后决定下一步的走向。如此重复,用步步逼近理想线条的方法画出规定的图形。26图形显示软件

——概述逐点比较法的执行过程开始偏差判别画笔走步偏差计算终点判断(N)(Y)结束27图形显示软件

——概述直线的生成算法——逐点比较法偏差判别:判断画笔的当前位置与规定图形位置之间的偏差,以确定画笔下一步的走步方向画笔走步:画笔在X或Y向走一步终点判断:判断画笔的当前位置是否是规定图形的终点偏差计算:计算画笔在当前位置上与规定图形之间的偏差28图形显示软件

——概述直线的生成算法——逐点比较法在用逐点法生成直线的过程中,要对处于不同位置的直线和画笔,规定一个合理的走笔方向,并讨论偏差的计算方法。29图形显示软件

——概述直线的生成算法——逐点比较法1)走向规定:把直线的起点设置在坐标系的原点,根据画笔当前位置,规定它的下一步走向如右图30图形显示软件

——概述直线的生成算法——逐点比较法2)偏差计算规则:以所画直线的斜率作为计算偏差的原始参数偏差值:=tg-tg

(P:笔当前位置)31图形显示软件

——概述直线的生成算法——逐点比较法

3)第一象限的偏差计算=tg-tg=yp/xp-ya/xa=(xayp-xpya)/xpxa0笔当前位置在直线下方,应该向+Y方向走一步0笔当前位置在直线上方,应该向+X方向走一步因为xpxa0,故判断的正负只需判断xayp-xpya因此偏差:F=xayp-xpya32图形显示软件

——概述直线的生成算法——逐点比较法4)用递推法简化偏差计算设笔的当前位置为P1,若F1=y1•xa–ya•x1<0(*)应走+Y一步,假设到达P2,则x2=x1y2=y1+1则在P2处的偏差应为F2=y2•xa–ya•x2=y1•xa–ya•x1+xa=F1+xa33图形显示软件

——概述直线的生成算法——逐点比较法4)用递推法简化偏差计算否则应走+X一步,则下一个点为x2=x1+1

y2=y1

则在P2处的偏差应为F2=y2•xa–ya•x2=y1•xa–ya•x1-ya=F1-ya34图形显示软件

——概述直线的生成算法——逐点比较法4)用递推法简化偏差计算根据以上的推导,只要知道F1,就可以连续推得F2、F3,并根据它们的符号确定画笔下一步的走步方向初始条件我们设画笔在直线段的起点,此时F1=0于是可归纳得:Fi≥0走+X一步,新偏差Fi+1=Fi–yaFi<0

走+Y一步,新偏差Fi+1=Fi+xa35图形显示软件

——概述直线的生成算法——逐点比较法4)用递推法简化偏差计算F<0,走+Y一步F=F+xaF≥0,走+X一步F=F-ya36图形显示软件

——概述直线的生成算法——逐点比较法5)其他象限的偏差计算公式就不再一一推导,过程是类似的,在此仅给出结果:

象限F≥0F<0走向偏差计算走向偏差计算1+XF=F-|ya|+YF=F+|xa|3-X-Y2+YF=F-|xa|-XF=F+|ya|4-Y+X37图形显示软件

——概述直线的生成算法——逐点比较法6)终点判断设置一个计数器,记录下画笔应走的总步数:N=X/S+Y/S

其中:X:直线段在X向的增量(X=|xa|)Y:直线段在Y向的增量(Y=|ya|)S:绘图机步长故终点判断为N=(|xa|+|ya|)/S;任何方向走一步后,N=N-1;直至N=038图形显示软件

——概述直线的生成算法——逐点比较法根据以上分析,可以总结为:1、输入直线段的始点(x0,y0)和终点(x1,y1),计算xa=x1-x0和ya=y1-y02、选定第一点为(x0,y0)并为Fk赋初值,即令x=x0,ya=y0,Fk=03、显示当前光点(x,y)4、根据Fk是否小于0,分别按递推公式计算Fk+15、根据Fk+1的符号和当前光点所处的象限,选定下一光点的走向和坐标(x,y)6、重复上述第3-5步,总的迭代次数为N=|x1-x0|+|y1-y0|39图形显示软件

——概述直线的生成算法——逐点比较法画出直线段(0,0)~(5,3)40图形显示软件

——概述直线的生成算法——数值微分法算法描述数值微分法即DDA法(DigitalDifferentialAnalyzer),是一种基于直线的微分方程来生成直线的方法。它的算法实质是用数值方法解微分方程,通过同时对x和y各增加一个小增量,计算下一步的x、y值简单的DDA法在直线的最大增量方向每次变化1,另一个方向则相应地每次变化一个小于1的值,逐个计算出最接近于理想直线的光点的坐标。41图形显示软件

——概述直线的生成算法——数值微分法算法描述设(x1,y1)和(x2,y2)分别为所求直线的起点和终点坐标,由直线的微分方程得:42图形显示软件

——概述直线的生成算法——数值微分法算法描述可通过计算由x方向的增量△x引起y的改变来生成直线:xi+1=xi+△x(10-1)yi+1=yi+△y=yi+△x·m(10-2)43图形显示软件

——概述直线的生成算法——数值微分法算法描述也可通过计算由y方向的增量△y引起x的改变来生成直线

yi+1=yi+△y(10-3)xi+1=xi+△x=xi+△y/m(10-4)44图形显示软件

——概述直线的生成算法——数值微分法算法思想选定x2-x1和y2-y1中较大者作为步进方向(假设x2-x1较大),取该方向上的增量为一个像素单位(△x=1),然后利用直线的微分方程计算另一个方

温馨提示

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

评论

0/150

提交评论