




已阅读5页,还剩368页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 计算机图形学和图形系统基本知识1.1 计算机图形学的概念计算机图形学(Computer Graphics)是研究怎样用数字计算机生成、处理和显示图形的一门学科。图形的具体应用范围很广,但是从基本的处理技术看只有两类,一类是线条,如工程图、地图、曲线图表等;另一类是明暗图,与照片相似。为了生成图形,首先要有原始数据或数学模型,如工程人员构思的草图,地形航测的判读数据,飞机的总体方案模型,企业经营的月统计资料等等。这些数字化的输入经过计算机处理后变成图形输出。下面是几个图形学中的基本概念:计算机图形:用计算机生成、处理和显示图形的学科;由几何数据和几何模型,利用计算机进行显示并存储,并可以进行修改、完善以及有关操作的过程;图象处理:将客观世界中原来存在的物体影象处理成新的数字化图象的相关技术;如CT扫描、X射线探伤等;模式识别:对所输入的图象进行分析和识别,找出其中蕴涵的内在联系或抽象模型;如邮政分检设备、地形地貌识别等;计算几何:研究几何模型和数据处理的学科,讨论几何形体的计算机表示、分析和综合,研究如何方便灵活、有效地建立几何形体的数学模型以及在计算机中更好地存贮和管理这些模型数据;1.2 计算机图形学的发展计算机图形学的研究起源于麻省理工学院。从50年代初到60年代中,麻省理工学院积极从事现代计算机辅助设计制造技术的开拓性研究。1952年在它的伺服构实验室里诞生了世界上第一台数控铣床的原型。1957年美国空军将第一批三坐标数控铣床装备了飞机工厂。大型精密数控绘图机也同时诞生。接着麻省理工学院发展了APT数控加工自动编程语言,这是目前国际上最通用的加工编程工具。1964年孔斯(Steve Coons)在这里提出了用小块曲面片组合表示自由型曲面时使曲面片边界上达到任意高次连续阶的理论方法,此方法得到工业界和学术界的极大推崇,称之为孔斯曲面。孔斯和法国雷诺汽车公司的贝齐埃(Pierre Bzier)并列被称为现代计算机辅助几何设计技术的奠基人。第一台光笔交互式图形显示器1962年在麻省理工学院林肯实验室研制成功,这是Lvan Sutherland以博士论文形式完成的研究课题。在美国工业界,研制交互图形显示器的工作也在平行开展。其中最重要的是IBM公司。在1964年秋它推出了自己的设计方案。以后经过改进,成为IBM 2250显示器。这是IBM计算机上正式提供工业界使用的第一代刷新式随机扫描图形终端。它使用光笔作为交互输入手段,并且配有一组32个功能键,以便调用程序中的相应功能模块。洛克希德飞机公司利用IBM 2250开发的CADAM绘图加工系统,从1974年起向外界转让,成为IBM主机上目前应用最广的CADCAM软件。IBM 2250在1978年前后改型为IBM 3250,但在原理上并无明显变化。1984年又改型为IBM 5080,采用光栅扫描技术,带彩色,有局部处理能力,并可以用旋钮直接放大、平移、旋转画面。光笔也改为电笔,与输入板配合使用,并操纵屏面上的光标。60年代末、70年代初,美国Tektronix公司发展了存贮管技术。显示器型号先后有4006,4010,4012等。Tektronix 4014曾经是70年代末CAD和工程分析中应用最广的图形终端。它的屏面尺寸是19英寸,画面线条清晰,分辨率可以达到40963072,价格不到刷新式同类显示器的一半。一次输入显示命令后可以保留画面一小时,因此编程简单,复杂的画面不会象刷新式显示器那样出现闪烁。它的缺点是不能局部动态修改显示画面。光栅扫描型显示器采用电视机的类似工作原理,最初主要用作图象处理。屏面象素的分辨率不很高,大多用512512,但是色彩层次十分丰富,可以高24个二进制位,即红绿蓝三原色各占8位,各有28256种层次,最终组合成224种色彩或灰度等级。当分辨率低时,这类显示器显示线条的效果不很好,有明显的锯齿形,而且要作向量到点阵的相互转换,交互响应速度受到一定影响。图形显示缓冲器占用的存贮量大。到了80年代初,个人计算机象Apple,IBMPC以及Apollo,SUN等工程工作站问世,并迅速得到广大用户的欢迎,销售量激增。在这些设计中,主机和图形显示器融为一体,都用光栅扫描型显示,并呆以同时生成高质量的线型图和逼真的彩色明暗图。由于大规模集成电路技术的发展和专用图形处理芯片的出现,使得光栅扫描型显示的质量越来越好,价格越来越低,现已成为图形显示器的当前常规形式。在工程设计中,联网的分布式工作站的应用也正在逐渐取代分时形式的大型主机连接几十个图形终端的结构。在图形显示技术发展的里程碑中,需要提出两家公司的产品,这就是Evans & Sutherland公司的PS300型和Silicon Graphicsr的IRIS型。它们采用了新的体系结构来提高图形的处理速度,在某种程度上达到了实时的要求。Evans 和Sutherland都是知名的计算机图形学专家。后者就是前面提到的光笔图形系统的研制人。PS 300脱离了传统的冯诺依曼机结构,不是逐条执行操作命令,而是采用数据驱动式原理。各个操作的执行次序取决于数据的到达时刻。当一次操作所需的全部输入数据都已齐备时,操作便启动执行。这样可以方便地组织并行处理。图形处理中的矩阵运算和其它基本算法使用三个位片处理机组成流水线,使得屏面上显示的线框图可以用旋钮实时旋转、平移和放大缩小,并且快速显示运动机构的动作过程,以便从不同角度观察各个元件间的协调关系。三维物体轮廓线的显示亮度可以随距离远近而变化,离眼睛越远的部分线条越淡,这样则可更好的体现出立体图的真实感。数字成象的一般处理过程是:(1)建立模拟对象的几何模型,按照需要的逼近精度将模型简化为平面多面体。不少系统为了简化和统一运算过程,还进一步将多面体的各个棱面分解为三角形单元。(2)将单个物体进行组装,施加平移、旋转和比例变换,形成整个模拟环境。(3)确定观察点位置,作出显示对象的透视变换。(4)确定显示范围,相当于照相中的取景。窗口的有效范围用上下、左右、前后六个平面规定。将所有准备输出的图元都与窗口范围进行比较,裁剪出落在窗口有效边界以内的部分。(5)确定图形显示器屏面上的显示范围(称作视区),将用户定义的三维空间(称作世界坐标系)内的物体映射到显示器的屏坐标系中。(6)计算各单元三角形的法向矢量,根据光照模型确定可见三角形表面的亮度和色彩。(7)显示所有可见的三角形单元。美国的J.H.Clark 从1979至1981年在斯坦福大学计算机系统实验室试用专用的浮点运算器组成流水线来完成上述过程。他将这类专用处理器称为几何机器。Silicon Graphics 公司的IRIS工作站就是采用上述工作原理的工业产品。此后,其它公司也纷纷效仿。这种持续不断的提高显示画面质量和加快交互呼应速度的努力将会继续进行,必将进一步推动计算机图形学技术的飞速发展。1.3 计算机图形学的应用 随着计算机图形学不断发展,它的应用范围也日趋广泛。目前计算机图形学应用领域主要有:1. 用户接口图形比文字、报表更直观、逼真。所谓“一目了然”、“耳闻不如目睹”,都是说明形象观察的优越性和必要性。Macintosh微机首先在商品化产品上用形象的图形表示操作命令,使得学龄前儿童也会用计算机画图和算数,打破了操作计算机的神秘感。图、文两种形式相结合大大改善了计算机交互操作的用户界面,开辟了计算机应用的很多新领域。下面简要说明某些典型的应用实例。2. 计算机辅助设计与制造(CAD/CAM)这是计算机图形学在工业界应用的最重要领域。在国外,交互图形工作站在机械、电子、建筑等行业中正在迅速取代绘图板加丁字尺的传统设计方法,担负起繁重的日常出图任务以及总体方案的优化和细节设计工作。3. 地形地貌和自然资源图我国正在筹建国土基础信息系统,此系统是国家经济信息系统的一个组成部分。这是将过去分散的表册、照片、图纸等资料整理成统一的数据库,记录全国的大地和重力测量数据、高山和平原地形、河流和湖泊水系、道路桥梁、城镇乡村、农田林地植被、国界和地区界以及地名等。利用这些存贮的信息不仅可以绘制平面地图,而且可以生成三维的地形地貌图,为高层次的国土整治预测和决策,为综合治理和资源开发研究提供科学依据。计算机图形学在作战指挥自动化中占有重要的地位。前面已经提到,美国早期的SAGE战术防空计划直接推动了现代的光笔图形显示器的研制。现代战争是多单位、多兵种的协同作战,战役指挥员和统帅部都必须及时了解各单位的态势情况。过去单依靠电话和地图指挥作战的方式正在发展为利用计算机网络和图形显示设备直接传输态势变化和下达作战部署。此外,计算机图形系统在陆军和海军的战役和战术对抗训练中也正在发挥巨大的作用。这类作战模拟系统使用联机的三台图形工作站,分别供红军、蓝军和导演使用。每个工作站配置显示作战态势的图形终端,显示战斗损耗的字符终端以及交互输入手段。计算机内存贮作战区域的地图、各种军标符号和模拟战斗效果的各种算法。整个演习由导演台指挥,分别向红军和蓝军布置作战任务和组织讲评。空军飞行员的空战模拟器对于图形显示器的硬件结构和软件算法提出了最苛刻的要求。飞行员在训练模拟舱内的操纵动作需要实时变换成投影在球形房顶上的飞机映象的飞行姿态。一场空战中同时有两架或三架战斗机参与,无疑整个计算机系统的研制费用极高。在国外这类系统已投入使用,我国则正在积极朝此方向努力。4. 计算机动画和艺术计算机动画在国外已经成为计算机图形学的一个分支,并进入了实用阶段。使用巨型Cray计算机和最高级的图形显示器。用计算机构造人体模型,有着非常广阔的应用前景。人机工程中需要考察人和机器以及周围环境的关系。工业设计中要使生活有的造型适应人的生理、心理特征。服装设计中要将人体作为效果分析的对象。舞蹈工作者希望能有方便的编写舞谱和形象表达舞蹈动作细节的工具。针对应用场合的不同,人体模型的构造方法 同。最简单的是杆系模型,一般应用最多的是多面体模型,最复杂的是曲面模型,模型的活动关节数也取决于应用需要。例如为了设计战斗机驾驶舱,需要计算飞行员和视景角度,用人体模型检查身体各部分的允许活动范围,考察各种手把、开关能否操纵自如。这时使用的人体模型应该详细到包含手掌和手指。5. 分析计算中的应用这里既有二维的曲线图表和三维模型,还可以利用彩色生成高维的几何表示。随着计算机硬件的不断 更新以及各种图形软件的不断推出,计算机图形学的应用前景将会更加引人入胜。1.4 计算机硬件简介一、常用的图形输入设备1向量型图形输入设备 它采取跟踪轨迹,记录坐标点的方法输入图形。主要输入的数据形式为直线或折线构成的图形构成的图形学数据。常用的向量型图形输入设备有数字化板、鼠标嚣、光笔等。2光栅扫描型图形输入设备 它采取逐行扫描,按一定密度采样的方式输入图形。主要的输入数据形式为一幅由亮度值构成的象素矩阵图象(Image)。这类设备常采用自动扫描输入方式,因此输入迅速方便。但是,它所获得的图象数据必须被转换为图形(Graphics)数据,才能被CAD过程和各子系统所使用。这种转换,是一种图形识别的过程。最近,这方面的研究正在逐步达到实用阶段。常用的光栅扫描型图形输入设备有扫描仪和摄象机。 从功能上可分为六类:1)点坐标即定位;2)一系列点的坐标即笔划;3)数值;4)选择;5)图形识别;6)字符串;1、 键盘 有ASCII编码键、命令控制键和功能键,可实现图形操作的某一特定功能;2、 鼠标 鼠标器是一种手持滚动设备,状如一个方盒,面上有2-4个开关,下面是两个互相垂直的轮子,或是一个球。当轮子或球滚动时,带动两个角度-数字转换装置,产生出滚动距离的x,y移动值。开关则用于位置的选择。鼠标器的一个重要特征是:只有当轮子滚动时才会产生和值变化。把鼠标器从一个位置拣起放到另一个位置,如果没有轮子的滚动,则不会输入任何信息。即鼠标器只能输入轮子的滚动值,而不能像数字化板那样输入位置值。因此,鼠标器不能用来输入图纸,而主要用于指挥屏幕上的光标。鼠标器价格便宜操作方便,是目前在图形交互上使用最广泛的图形输入设备。1) 光电式鼠标 利用发光二极管与光敏晶体管来测量位移:二者的夹角使二极管发光,经鼠标板反射至光敏晶体管,由于鼠标板均匀间隔的网格使反射光强弱不同,其变化转化为表示位移的脉冲;2) 机械式鼠标 内有三个滚轴:空轴,X向滚轴,Y向滚轴,一个滚球;X向、Y向滚轴带动译码轮,译码轮位于两传感器之间且有一圈小孔,二极管发向光敏晶体管的光因被阻断产生位移的脉冲,而两脉冲成90度;3、 坐标数字化仪: 数字化仪由一块平板和一个探头组成。它按工作原理的不同而分为电磁式的、超声波式的、磁致伸缩的、机械式的等等多种。1) 机械式坐标数字化仪 导轨和测头沿两个方向移动,带动光栅轮移动,产生光电信号,从而得到两点相对距离的坐标数; 2) 超声波式坐标数字化仪 利用X,Y方向的超声波传感器和拾取坐标点的笔尖上的超声波发生器,通过记录的超声波到X,Y边的最小时间换算出两点间的距离;3) 全电子式坐标数字化仪 在平板的板面下边,是一块由x方向和y方向组成的导线风印刷线路板。平板内装有一套电子线路,它向导线网的x方向线与y方向线依次进行时序脉冲扫瞄。扫描电流对导线的瞬间激励会引起一个时序脉冲的时间进行比较之后,探头所在的位置数据就可以自动得出并送入计算机。4) 三维数字化仪 这类设备是能过插动的方法将3D物体的表面结构(线框)输入到计算机形成计算机内的3D线框图模型,直接用于真实感显示。前面的2D数字化仪可视为其特例。因此这类设备称为3D数字化仪(3D Digitizer)。传统的CAD技术致力于在计算机中设计和装配几何形体,但那些习惯于创作雕塑的高等师却难以将他们丰富的创造逼真而快速地输入到计算机内,因此大大限制了CAD造型在许多领域中的应用。然而,3D自动数字化仪的出现将以上二个截然不同的高等世界有机地集中到了一起。这一设备能够自动地将3D物体的表面形状以及色彩的信息输入到计算机中。 3D数字化仪的工作原理是:投射一组垂直的光线到物体上,镜子从二个视点捡取光照射后得到的的轮廓。然后用一个高精度的传感器进行扫描,经由特殊的电路将视频图象数字化从面临是到一个矩形区域的范围表(Range Map),这是一个关于距离测量数组。数字化仪以这样每投射一组光线得到一个轮廓的办法,沿着物体的周围,扫掠一遍,直到创建一个描述整个物体的范围表为止。Cyberware每秒种收集15000个范围的测量。工作站上的数字化仪最后将范围表经由标准以太网连接送到工作站上的数据库,数据的输出可以是任何一种现有的图形CAD软件所识别的格式,如DXF等等。4、 光笔 光笔是一种手持检测光的。它的外形像一根笔。笔尖是一组透镜。在透镜的聚焦处是光导纤维,联入光电二极管。光线由透镜入,通过光导纤维,由光电二板管转换为电信号,整形后为电脉冲。光笔上的按钮则控制电脉冲是否被输出。光笔的工作过程和数字化板有所类似。光笔将荧光屏当作图形平板,屏上的象素矩阵能够发光。当光笔所的象素被激活,象素发出的光就被转换为脉冲信号。,这个脉冲信号与扫描时序进行比较后,便得出光笔所指位置的方位信号。光笔原理简单、操作直观,是早期CAD系统中最主要的图形输入设备.但是光笔存在不少缺点:因为光笔以荧光屏作为图形平板,因此它的分辨度和灵敏度和荧光屏之特征有很大关系。显示器的不同分辨度,电子束的不同扫描速度,荧光粉的不同特性,以及笔尖与荧光粉的不同距离与角度等诸多因素都会影响光笔的分辨度与灵敏度。光笔对于荧光屏上不发光的区域无法检测。而且使用者长期凝视荧屏,会感到眼睛疲劳。5、 触摸屏 触摸屏利用手指等对屏幕的触摸位置进行定位,有:电阻式和电容式:是利用两涂层间的电阻和电容的变化确定触摸位置;红外线式:是利用红外线发生和接受装置检测光线的遮挡情况从而发生电平变化,或通过测量投射屏幕两边的阴影范围确定手指位置;声表面波式:是利用手触及使声波发生衰减,从而转换为X,Y坐标的;6、 图形扫描仪 Microtek公司率先推出了世纪性产品:扫描议,从此为微机带来了眼睛。扫描仪是通过光电转换,点阵采样的方式,将一幅画面变为数字图象的设备。它由三部分组成:1扫描头 它由两部分构成:光源发射部分发射出一束细窄的光线到画面上,光线接收部分接收画面所反的光线并转换为电信号。2控制电路 它将扫描头输出的电信号整形,并通过AD线路转换为表达方位与光强度的数字信号输出。3移动扫描机构 它使扫描头相对于画在作x和y方向的二维扫描移动。按照移动机构的不同,扫描仪可以分为两类:平板式和滚筒式。前者将画面固定在平面上,扫描头在画面上作二维水平扫描移动。后者将画面固定在一个滚筒上,扫描头只作y方向的一维移动,而x方向的移动则由滚筒的旋转完成。 扫描仪的精度一般在300600点时以上。可高达每寸2400点,甚至4800,9600dpi。画面通过扫描仪变为一幅数字矩阵图象。其中每一点和值代表画面上对应点的反射光线强度,即该点的亮度。 扫描仪也可用摄象机代替。摄象机价格便宜、速度快,可3输入运动的实物形象,但精度较差。一般摄象机每幅画面的分度在640640左右。它可用于对精度要求不高的CAD领域。二、常用的图形输出设备 图形输出设备是以纸、胶片、塑料薄膜等物质为介质,输出人眼可视并能长期保存的图形的计算机外部设备。图形输出设备也可分为向量型和光栅扫描型两大类。向量型设备的作画机构随着图形的输出形状而移动并成象。绘图机属于旺型设备。光栅扫描型设备的作画机构按光栅矩阵扫描整张图面,并按输出内容对图面成象。光栅扫描型力形输出设备包括点阵式打印机、热敏印刷机、静电印刷机、喷墨印刷机以及激光打印机等等。1 阴极射线管2 显示器 显示器有随机扫描显示器、存储管式显示器、光栅扫描式显示器、液晶显示器、等离子显示器等;1) 随机扫描显示器由显示文件存储器得到指令,显示控制器控制电子束的偏移,从而在屏幕上产生图形;2) 存储管式显示器 图形信息首先写在细网栅格上,由读出电子枪发出的电子流把存储网上的图形写在屏幕上;3) 光栅扫描式显示器 CRT中的水平和垂直偏转线圈分别产生水平和垂直磁场,电子束则在不同方向磁场力作用下进行行和列扫描,将屏幕分成由像素构成的光栅网格,其中像素具有灰度和颜色。早期的CAD图形显示使用随机扫描显示器。这种显示器通常用于显示线框图,电子束随着线条的显示位置而移动,按亮度要求轰击荧光而发光。这种显示器的工作方式和示波器的显示方式是一致的。到了80年代,随机扫描显示器在CAD中基本淘汰,代之而起的是光栅扫描(Raster Scanning)显示设备。光栅扫描显示设备有单色的,也有彩色的。它由三部分组成:显示器、图形控制器和缓存寄存器。它的显示方式类似于电视机,荧光屏上的图形由荧光习的点矩阵组成,电子束按行列次序扫描点矩阵,并由显示内容来控制所扫描的点是否发亮,每扫描一遍称为一帧。但是,和电视机非常不同的是,它的显示内容不来自天线所接收的信号,而是来自一个专门的内存,称为帧缓存寄存器(Frame Buffer)。 荧光屏上画面的每一点称为一个象素(Pixel)。每个象素都对应于Buffer中的一个存储单元,里面存放着该象素的显示亮度值。象素的亮度值控制电子束对荧光屏的轰击强度,象素在帧缓存寄存器中的位置编码控制电子束的偏转位置。 分辨率(Resolution)是光栅扫描显示设备最重要的指标。分辨率被表示为n1n2n3 。 n1和n2分别指象素矩阵所含的列数和行数。n3指每个象素在帧缓存寄存器中所对应的存储单元的大小,它描述了所显示的画面能包含的色彩或灰度的多少。例如,一个显示系统的分辨度为10247688,则意味着该显示系统所能显示画面的最高分辨度为1024列,768行,并至多可以同时产生28256种不同的色彩。 3 打印机 有激光打印机,喷墨打印机,针打印机等。 喷墨打印机用喷墨头将3-4种不同色的墨水射在打印纸上而印出图案。喷墨头中含有4组细小的喷嘴,分别喷射红、黄、蓝、黑四色。控制嘴电脉冲加在压电传感器上,产生压力,将由泵打入入口的墨水喷了。一个附加的空气喷头对墨水滴加速,并保持其飞行的稳定性,以每秒数米的速度射向打印纸面。彩色的形成靠不同墨水点迹混合,可产生高达15625种不同深浅和色彩的图象。喷墨打印机的分辨度达150dpi以上,完成一张彩图印刷约需一分多钟。喷墨打印机可印出相当漂亮的彩色图片。 激光打印机以其高质量的打印效果、快捷的打印速度,在图形输出设备中独占鳌头。激光打印机的机械结构十分复杂,主要部分有墨粉、感光鼓(或称硒鼓)、显影轧辊、初级高压电晕放电线等,均装在一个可以取下的盒子中。打印开始时,鼓外表面被均匀充上负电荷,此步称为鼓的初始化,每当打印机要打一个黑点时,它将一个细小的激光二极管点亮,激光二极管发出的激光经过一系列反射镜后到达鼓上的有机光敏材料上,使该点变成导体,打印机就在鼓上留下一个无法看见的带一100V电压的象点。接着是显影过程,即让硒鼓上已感光的部分沾上墨粉,得到可见象点,打印机使用的墨粉主要成分是黑色塑料粉末,内含微小的铁粉,使得墨粉能被磁铁吸引,这样墨粉就能在磁铁控制下移动,如图1.14所示。经过显影,鼓上一100V的不可见象点变成了可见的黑色墨粉点了。接着,硒鼓与打印纸接角,纸上产生正电荷,将鼓上带有负电=听墨粉紧紧吸引,而在纸上得到一个墨粉黑点。经在纸上得到牢固的图象,必须熔化象点,迫使熔化后的墨粉进入纸的纤维之中。至此,打印过程完毕。4 绘图机 绘图机按结构不同可以分为两大类:平板式(Flat)和滚筒式(Drum)。平板式绘图机将图纸固定在固定的平板上。平板上方有一y方向的导轨,电机驱动笔架沿导轨可作y方向的移动。y方向的导轨架在x方向的导轨之寂,因此可由x方向电机驱动y方向导轨带动笔架,沿着x方向导轨移动。这样笔架上的笔就可按照输出量作二维方向的移动和绘图。滚筒式绘图机的笔架的y方向的移动方式与平板式相同。但x方向的移动则由滚筒的旋转而、完成。滚筒式绘图机比平板式绘图机价格便宜,占地面积小,但是精度稍差,只能接受一种大小的图纸,而且在绘图过程中对图面监视困难。1.5 计算机图形标准原则:与计算机硬件无关,实现程序的可移植性;包括:核心图形系统CGS(Core Graphics System),1977年美国计算机协会公布计算机图形接口CGI(Computer Graphics Interface),ISO公布;计算机图形元标准CGM(Computer Graphics Metafile);计算机图形核心系统GKS(Graphics Kernel System);程序员层次交互式图形系统PHIGS(Programmers Herarchical Interactive Graphics System);初始图形交换规范IGES(Initial Graphics Exchange Specification),1983年,美国国家标准局;等等。1)GKS GKS(Graphics Kernal System)提供了在应用程序和图形输入输出设备之间的功能接口,定义了一个独立于语言的图形核心系统,在具体应用中,必须符合所使用语言的约定方式,把GKS嵌入到相应的语言之中。GKS在图形应用中的地位如图2.3.1所示。图中每个层次可以调用下一层次的功能。对于应用程序员来说,通常使用面向应用层、依赖语言的接口层以及操作系统等资源。为了使图形应用程序获得更高的可移植性,GKS的体系结构具有可更换设备驱动程序的元文件等特点。GKS的体系结构如2.2.3所示。其中氖的图形资源都必须由GKS控制,应用程序(DDPi)不得旁路GKS而直接使用图形资源。 GKS在应用程序和图形输入输出设备之间提供了功能接口,它包括一系列交互和非交互式图形设备的全部图形处理功能,大致分为以下十类。(1)控制功能:执行打开、并闭GKS以及使工作站进入或退出活动状态和删除工作站等;(2)输出功能:确定输出图形类型;(3)输出属性:图素的各种属性以及各种图素在工作站上的表现方式;(4)变换功能:实现规格化变换和工作站变换;(5)图段功能:对图形进行生成、删除、复制以及实现图段属性控制;(6)输入功能:对各种输入设备初始化,设备工作方式、确定请求、采样和事件输入;(7)询问功能:查询GKS描述表、状态表、出错表、工作站描述表、图素表等,查询GKS状态值、级别、工作站类型、状态以及描述表,图段状态等内容;(8)实用程序:实现GKS的几何变换等;(9)元文件处理;(10)出错处理。 GKS作为一个二维图形的功能描述,它独立于图形设备和各种高级语言,定义了用高级评议编写应用程序与图形程序包的接口。在任何配有GKS的图形软件中,只要有一个上述功能子程序作为应用程序的接口,用户就可以根据自己的需要,在应用程序中调用GKS的各种功能,这样编制出来的应用程序可方便地在具有GKS的不同图形系统之间移植。2)PHIGS PHIGS(Programmers Hierarchical Interactive Graphics System)是ISO 1986年公布的计算机图形系统标准,标准号是ISO IS 9592。从其名称上看,包含以下三个含义。其一,是向应用程序员提供的控制图形设备的图形系统接口;其二,图形数据按层次结构组织,使多层次的应用模型能方便地应用PHIGS进行描述;其三,提供了动态修改和绘制显示图形数据的手段。PHIGS是为具有高度动态性,交互性的三维图形应用而设计的图形软件工具库,其最主要的特点是能够在系统中高效率地描述应用模型,迅速修改图表模型的数据,并能绘制显示修改后的图形模型,它也是在程序与图形设备之间提供了一种功能接口。在图形数据组织上,它建立了独立于工作站的中心结构存储区与图形档案管理文件;在图形操作上,它建立了适应网状的图形结构模式的各种操作;在图素的设置上,它既考虑了址维与三维的结合,也满足矢量与光栅图形设备的特点。 PHIGS由328个用户功能子程序构成,按其内容可分为:控制、输出图元、设置属性、结构、变换、结构管理与显示、档案管理、输入、图形元文件、查询、错误控制及特殊接口功能模块。各模块相对独立,一个模块仅通过系统的公共数据结构与其他模块间相连。各模块调用的公共子程序集中在一个公共子程序模块中,从而整个系统的逻辑结构清晰,且没有重复的程序功能,从而便于逐个模块地进行程序开发,并可利用已经测试通过的程序模块对正在高度的程序模块进行验证,也为整个PHIGS的开发提供了方便。3)GL GL(Graphics Library)是近年来在工作站上广泛应用的一个工业标准图形程序库,按其功能可划分为如下几类:1基本图素。包括点、直线、多边形、三角形、三角形风格、矩形、圆和圆弧、字符、曲线和曲面以及读写象素等。2坐标变换。支持旋转、平移、比例变换以及窗口视图变换、投影变换和裁剪,同时支持用户定义的各种变。3设置属性和显示方式。可定义 选择线型、填充图案、字体和光标,可设置RGB和颜色表两种选色方式以及明暗效果、双缓冲、各种位图等多种绘图方式。4输入输出。用于启动输入输出设备,并对相应的事件队列进行处理。5真实图形显示。这里有消除隐藏线、面、光照处理和深度排队。 GL在UNIX操作系统下运行,具有C,Fortran,Pascal三种语言联编形式。GL和其他三维图形标准相比具有以下特点:(1)图元丰富除具有一般图元外,还具有B样条曲线、Bezier曲面、NURBS曲面等。(2)颜色GL肯有RGB和颜色索引两种方式,有Gourand和Phong光照模型,使表面显示的亮度与色彩变化柔和。(3)Z缓冲技术是在每个象素上附加一个24位或48位的表示Z值的缓冲存储器,这对曲线曲面的消隐,亮度随度变化的处理,提高图形处理效率等都具有重要作用。(4)光源光源的强芭、颜色、物体的反方向、镜面反射系数、漫反射系数等都影响到一定光源照射下物体最终的显示效果。GL提供了充分的光源处理能力,使用户能得到非常生动的图象。(5)GL和X窗口GL既可单独运行,也可在X窗口环境下运行,进而可支持网络上的用户。4)CGRMCGRM(Computer Graphics Reference Model)是ISO讨论的计算机图形国际标准,其号是ISOIEC DIS 11072。为了总结计算机图形标准化的现有成果,为下一小的标准化工作提供指导性框架,从而提出了制定CGRM标准的要求。 CGRM定义了一个框架结构,它可用来比较现有的和 来的计算机图形标准,描述它们之间的关系,从而为计算机图形的用户和计算机图形软件的开发者提供有关方面的重要信息。CGRM用五个抽明的层次来定义计算机图形,分别称为构造、虚拟、观察、逻辑和物理环境(仿造于OSI网络的七层模型)。其中构造层最高、物理层最低、低层为高层提供服务,应用软件则建立在构造环境之上。CGRM还定义了对每层数据元的操作。 CGRM采用输出原语来定义计算机图形的输入,通过一个存储器可以把输入信息集成为应用程序所需的形式。人概念看,在已收到的输入和已产生的输出之音的联接由应用程序来处理,应用程序也可以把此事委托某个环境来处理。为了允许构造复杂的图形,CGRM定义了一个集合存储器,由此可得到输入信息的项,从低层环境中的输入信息组合出高一层环境中的新的输入信息。具体说,CGRM标准可用于以下几方面。(1)提炼和确认计算机图形的要求;(2)确诊计算机图形标准和外部接口的要求;(3)根据计算机图形的需求来发展模型;(4)确定新的计算机图形标准的体系;(5)对计算机图形标准进行比较;第二章 基本图形的生成与计算2.1 直线的生成算法在光栅显示器的荧光屏上生成一个对象,实质上是往帧缓存寄存器的相应单元中填入数据。画一条从(x1, y1)到(x2, y2)的直线,实质上是一个发现最佳逼近直线的象素序列,并填入色彩数据的过程。这个过程也称为直线光栅化。本节介绍在光栅显示器上直线光栅化的最常用的两种算法:直线DDA算法和直线Bresenham算法。2.1.1 直线的DDA算法DDA是数字微分分析式(Digital Differential Analyzer)的缩写。设直线之起点为(x1,y1),终点为(x2,y2),则斜率m为:m = 直线中的每一点坐标都可以由前一点坐标变化一个增量(Dx, Dy)而得到,即表示为递归式:xi+1=xi+Dxyi+1=yi+Dy并有关系:Dy = m Dx递归式的初值为直线的起点(x1, y1),这样,就可以用加法来生成一条直线。具体方法是:图2.1.1 直线方向的8个象限 图2.1.1表2.1.1象限|dx|dy|?D xD y1a1b2a2b3a3b4a4b 11/m-1-1/m-1-1/m11/mm1m1-m-1-m-1按照直线从(x1,y1)到(x2,y2)的方向不同,分为8个象限(图2.1.1)。对于方向在第1a象限内的直线而言,D x=1,D y=m。对于方向在第1b象限内的直线而言,取值Dy=1,Dx=1/m。各象限中直线生成时Dx, Dy的取值列在表2.1.1之中。研究表中的数据,可以发现两个规律:1、当|dx|dy|时|D x|=1, |D y|=m;否则:Dx=1/m,|Dy|=12、Dx, Dy的符号与dx, dy的符号相同。这两条规律可以导致程序的简化。由上述方法写成的程序如程序2.1.1所示。其中steps变量的设置,以及D x=dx/steps; D y=dy/steps等语句,正是利用了上述两条规律,使得程序变得简练。使用DDA算法,每生成一条直线做两次除法,每画线中一点做两次加法。因此,用DDA法生成直线的速度是相当快的。dda_line (xa, ya, xb, yb, c)int xa, ya, xb, yb, c;float delta_x, delta_y, x, y;int dx, dy, steps, k;dx=xb-xa;dy=yb-ya;if (abs(dx)abs(dy) steps=abs(dx);else steps=abs (dy);delta_x=(float)dx / (float)steps;delta_y=(float)dy / (float)steps;x=xa;y=ya;set_pixel(x, y, c);for (k=1; k0,则yi+1=yi+1,否则yi+1=yi。因此算法的关键在于简便地求出d1-d2的符号。将式(2.1.1)、(2.1.2)、(2.1.3)代入d1-d2,得d1-d2=2y-2yi-1=2(xi+1)-2yi+2b-1用dx乘等式两边,并以Pi=dx(d1-d2)代入上述等式,得Pi=2xidy-2yidx+2dy+dx(2b-1) (2.1.4)d1-d2是我们用以判断符号的误差。由于在1a象限,dx总大于0,所以Pi仍旧可以用作判断符号的误差。Pi-1为:Pi+1=Pi+2dy-2dx(yi+1-yi) (2.1.5)误差的初值P1,可将x1, y1,和b代入式(2.1.4)中的xi, yi而得到:P1=2dy-dx综述上面的推导,第1a象限内的直线Bresenham算法思想如下:1、画点(x1, y2); dx=x2-x1; dy=y2-y1;计算误差初值P1=2dy-dx; i=1;2、求直线的下一点位置:xi+1=xi+1;if Pi0 则yi+1=yi+1;否则yi+1=yi;3、画点(xi+1, yi-1);4、求下一个误差Pi+1;if Pi0 则Pi+1=Pi+2dy-2dx;否则Pi+1=Pi+2dy;5、i=i+1; if i|dy|为分支,并分别将2a, 3a象限的直线和3b, 4b象限的直线变换到1a, 4a和2b, 1b方向去,以求得程序处理的简洁。void line (x1, y1, x2, y2, c)int x1, y1, x2, y2, c;int dx;int dy;int x;int y;int p;int const1;int const2;int inc;int tmp;dx=x2-x1;dy=y2-y1;if (dx*dy=0) /*准备x或y的单位递变值。*/ inc=1;elseinc=-1;if (abs(dx)abs(dy) if(dx0) tmp=x1; /*将2a, 3a象限方向*/ x1=x2; /*的直线变换到1a, 4a*/ x2=tmp; tmp=y1; /*象限方向去*/ y1=y2; dx=-dy; dy=-dy; p=2*dy-dx; const1=2*dy; /*注意此时误差的*/ const2=2*(dy-dy); /*变化参数取值. */ x=x1; y=y1; set_pixel(x, y, c); while (xx2) x+; if (p0) p+=const1; else y+=inc; p+=const2; set_piexl(x, y, c); else if (dy0) tmp=x1; /* 将3b, 4b象限方向的*/ x1=x2; /*直线变换到2b, 1b */ x2=tmp; /*象限方向去. */ tmp=y1;y1=y2;dx=-dy;dy=-dy;p=2*dx-dy; /*注意此时误差的*/const1=2*dx; /*变化参数取值. */const2=2*(dx-dy);x=x1;y=y1;set_pixel (x, y, c); while (yy2) y+; if(p0) p+=const1; elsex+=inc;p+=const2;set_pixel (x, y, c); 程序2.1.2 适用于直线所有八个方向的Bresenham直线生成算法2.2 圆的生成算法 2.2.1 基础知识给出圆心坐标xc, yc,和半径r,逐点画出一个圆周的公式有下列两种:1、直角坐标法:(x-xc)2+(y-yc)2=r2由上式导出y=当x-xc从-r到r作加1递增时,就可以求出对应的圆周点的y坐标。但是这样求出的圆周上的点是不均匀的;|x-xc|越大,对应生成圆周点之间的圆周距离也就越长。因此,所生成的圆不美观。.2、极坐标法:x=xc+rcosy=yc+rsin当 从0 度到360 作加1递增时,由此式便可求出圆周上均匀分布的360个点的x, y坐标。利用圆周坐标的对称性,此算法还可以简化:将圆周分为8个象限(图2.2.1)。只要将第1a象限中的圆周光栅点求出,其余7部分圆周就可以通过对称法则计算出来。图2.2.1给出了圆心在0,0点时的对称变换法则。但即使作了如此简化,用上述公式每算一点,都要经过三角函数计算,仍有相当大的计算量。 图2.2.1 圆心在0,0点圆周生成时的对称变换在计算机中上述两个公式所示的方法生成圆周都颇费时,下面介绍的算法则要简捷得多。2.2.2 圆的Bresenham算法设圆之半径为r。先考虑圆心在(0,0),并从x=0, y=r开始的顺时针方向的1/8圆周的生成过程。在这种情况下,x每步增加1,从x=0开始,到x=y结束。即有:xi+1=xi+1相应的yi+1则在两种可能中选择:yi+1=yi,或者yi+1=yi-1选择的原则是考察精确值y靠近yi还是靠近yi-1(图2.2.2),计算式为:y2=r2-(xi+1)2d1=yi2-y2 =yi2-r2+(xi+1)2d2=y2-(yi-1)2 =r2-(xi+1)2-(yi-1)2图2.2.2 y的位置令pi=d1-d2,并代入d1, d2,则有pi=2(xi+1)2+y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025重庆国隆农业科技产业发展集团有限公司选聘下属子企业领导人员1人笔试历年参考题库附带答案详解
- 2025贵州纳雍源生牧业股份有限公司招聘4人笔试历年参考题库附带答案详解
- 2025贵州毕节市金沙县国有资本投资运营集团有限公司招聘51人笔试历年参考题库附带答案详解
- 2025贵州六枝特区益正开发投资有限责任公司人员招聘4人笔试历年参考题库附带答案详解
- 2025西安华山金属材料科技有限公司校园招聘笔试历年参考题库附带答案详解
- 2025秋季安徽合肥工投工业科技发展有限公司招聘8人笔试历年参考题库附带答案详解
- 2025杭州临安区教育局公开招聘中小学教师76人考前自测高频考点模拟试题及完整答案详解一套
- 2025福建漳龙集团有限公司招聘3人笔试历年参考题库附带答案详解
- 2025河南许昌市消防救援支队招聘政府专职队员50人模拟试卷附答案详解(完整版)
- 2025福建广电网络集团股份有限公司连江分公司招聘笔试历年参考题库附带答案详解
- 《建筑电气安装》课件
- 《山东省房屋市政施工安全监督要点》及《安全监督“二十要”》2025
- 2025年湖南环境生物职业技术学院单招职业技能考试题库带答案
- 生物安全管理体系文件
- 河道疏浚外运施工方案
- 银行职业介绍课件
- 辽宁省盘锦市大洼区田家学校2024-2025学年九年级上学期第四次质量检测语文试卷
- 广东省惠州市联考2024-2025学年上学期12月教学质量阶段性诊断八年级数学试卷(无答案)
- 砖砌围墙施工方案
- 2024-2030年中国痘痘贴行业营销动态及消费需求预测研究报告
- 《人工智能导论》(第2版)高职全套教学课件
评论
0/150
提交评论