计算机图形学第四章_第1页
计算机图形学第四章_第2页
计算机图形学第四章_第3页
计算机图形学第四章_第4页
计算机图形学第四章_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

第4章多边形多边形:(定义)限定为有封闭折线边界且无交叉边的平面图形多边形分类:凸多边形、凹多边形2023年2月6日计算机图形学40字符处理ASCII码:“美国信息交换用标准代码集”(AmericanStandardCodeforInformationInterchange),简称ASCI码。国标码:“中华人民共和国国家标准信息交换编码,简称为国标码,代号GB2312-80。字库:字库中储存了每个字符的图形信息。矢量字库和点阵字库2023年2月6日计算机图形学41国标码:6763个汉字,一级3755个,二级3008个,682个图形符号,所有汉字和图形符号组成94×94矩阵,每行为“区”,每列为“位”,区码位码各用一个字节表示。最高位为1表示国标码。2023年2月6日计算机图形学423.5.1字符的属性字体、字形、字号、字间距、行间距等等。 一般字体确定风格,字形确定外观,字号确定尺寸。2023年2月6日计算机图形学43字符串的属性文本高度、文本宽度(扩展/压缩因子)、字符方向、文本路径方向、对齐方式(左对齐,中心对齐,或右对齐,指定起始、终止点)、文本字体、字符的颜色属性等。反绘(从右到左)、倒绘(旋转180°)、写方式(替换或与方式)等。2023年2月6日计算机图形学44字符的表达和生成型式点阵式矢量式编码式轮廓技术2023年2月6日计算机图形学45点阵字符在点阵表示中,每个字符由一个点阵位图来表示显示时:形成字符的象素图案常用的点阵大小有5×7、7×9、8×8、16×16等等

字符A的点阵表示111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000(a)字符A的点阵位图(a)字符A的象素图案2023年2月6日计算机图形学46矢量字符矢量字符采用直线和曲线段来描述字符形状,矢量字符库中记录的是笔划信息。显示时:解释字符的每个笔划信息2023年2月6日计算机图形学47如B字符,由定点a,b,c,d,e,f,g,h,I,j,k,l表示,调用矢量字符过程相当于输出一个polyline,2023年2月6日计算机图形学48方向编码式方向编码式字符用有限的若干种方向编码来表达一个字符,常用的如8方向编码2023年2月6日计算机图形学49“B”表示为8方向编码:{000012344400012344440666666}2023年2月6日计算机图形学50轮廓技术当对输出字符的要求较高时(如排版印刷),需要使用高质量的点阵字符。对于GB2312-80所规定的6763个基本汉字,假设每个汉字是72X72点阵,那么一个字库就需要72X72X6763/8=4.4兆字节存储空间在实际使用时,还需要多种字体(如基本体、宋体、仿宋体、黑体、楷体等),每种字体又需要多种字号。2023年2月6日计算机图形学51解决这个问题一般采用压缩技术。对字型数据压缩后再存储,使用时,将压缩的数据还原为字符位图点阵2023年2月6日计算机图形学52压缩方法有多种:最简单的有黑白段压缩法,这种方法简单,还原快,不失真,但压缩较差,使用起来也不方便,一般用于低级的文字处理系统中。另一种方法是部件压缩法。这种方法压缩比大,缺点是字型质量不能保证。三是轮廓字型法,这种方法压缩比大,且能保证字符质量,是当今国际上最流行的一种方法,基本上也被认为是符合工业标准化的方法。2023年2月6日计算机图形学53轮廓字型法采用直线、或者二/三次Bezier曲线的集合来描述一个字符的轮廓线。轮廓线构成一个或若干个封闭的平面区域。采用适当的区域填充算法,可以从字符的轮廓线定义产生的字符位图点阵,区域填充算法可以用硬件实现,也可以用软件实现。2023年2月6日计算机图形学54由美国Apple和Microsoft公司联合开发的TrueType字型技术就是一种轮廓字型技术,已被用于为Windows中文版生成汉字字库。当前占领主要的电子印刷市场的我国北大方正和华光电子印刷系统,用的字型技术是汉字字型轮廓矢量法。2023年2月6日计算机图形学55属性处理(线形线宽处理)线型和线宽1.线型处理实心段和中间空白段的长度(象素数目)可用象素模板(pixelmask)指定。存在问题:如何保持任何方向的划线长度近似地相等2023年2月6日计算机图形学56解决可根据线的斜率来调整实心段和中间空白段的象素数目。2023年2月6日计算机图形学57直线线宽处理方法刷子法:线刷子;方形刷子区域填充法2023年2月6日计算机图形学58线刷子和方刷子处理线宽线刷子:垂直刷子、水平刷子

线刷子(a)(b)2023年2月6日计算机图形学59特点实现简单、效率高。斜线与水平(或垂直)线不一样粗。当线宽为偶数个象素时,线的中心将偏移半个象素。利用线刷子生成线的始末端总是水平或垂直的,看起来不太自然。解决:添加“线帽(linecap)”2023年2月6日计算机图形学60

线“帽子”(a)方帽(c)圆帽(b)突方帽2023年2月6日计算机图形学61当比较接近水平的线与比较接近垂直的线汇合时,汇合处外角将有缺口

线刷子产生的缺口2023年2月6日计算机图形学62解决:斜角连接(miterjoin)、圆连接(roundjoin)、斜切连接(beveljoin)

线刷子产生的缺口(a)斜角连接(b)圆连接(c)斜切连接2023年2月6日计算机图形学63方刷子特点:方刷子绘制的线条(斜线)比用线刷子所绘制的线条要粗一些方刷子绘制的斜线与水平(或垂直)线不一样粗方刷子绘制的线条自然地带有一个“方线帽”

方刷子2023年2月6日计算机图形学64其它线宽处理方式区域填充改变刷子形状:111101111111000(a)象素模板(b)用该模板进行线宽处理

利用象素模板进行线宽处理2023年2月6日计算机图形学65曲线的线型和线宽线型:可采用象素模板的方法

利用模板110进行圆的线型处理2023年2月6日计算机图形学66线宽线刷子方刷子 要显示一致的曲线宽度可通过旋转刷子方向以使其在沿曲线移动时与斜率方向一致,圆弧刷子采用填充的办法。2023年2月6日计算机图形学67区域填充属性区域填充属性选择包括颜色、图案和透明度。001010111(a)图案模板位图(b)用该模板进行填充

利用图案模板进行三角形的填充模板图案2023年2月6日计算机图形学68根据图案和透明度属性来填充平面区域的基本思想首先用模板定义各种图案。然后,修改填充的扫描转换算法:在确定了区域内一象素之后,不是马上往该象素填色而是先查询模板位图的对应位置。若是以透明方式填充图案,则当模板位图的对应位置为1时,用前景色写象素,否则,不改变该象素的值。若是以不透明方式填充图案,则视模板位图对应位置为1或0来决定是用前景色还是背景色去写象素。2023年2月6日计算机图形学69确定区域与模板之间的位置关系(对齐方式)一种对齐方式是把有模板原点与填充区域边界或内部的某点对齐一种对齐方式是把模板原点与填充区域外部的某点对齐70走样现象走样(aliasing)用离散量(像素)表示连续的量(图形)而引起的失真,称为走样,或称为混淆光栅图形的走样现象阶梯(锯齿)状边界图形细节失真狭小图形遗失:动画序列中时隐时现,产生闪烁71(1)阶梯状的图形边界像素间距大线画图元填充图元边界实例72(2)图形细节失真显示图形的最小单位为像素细长的矩形显示后成了加宽的矩形更细的矩形将丢失73(3)狭小图形的遗失与动态图形的闪烁多边形分布在像素间,不覆盖像素中心,不被显示狭小图形运动时,会间隔覆盖像素的中心,产生闪烁74反走样方法反走样(antialiasing)在图形显示过程中,用于减少或消除走样(混淆)现象的方法方法提高分辨率方法非加权区域采样加权区域采样75(1)提高分辨率的反走样方法方法简单,但代价非常大显示器的水平、竖直分辩率各提高一倍,则显示器的点距减少一倍,帧缓存容量则增加到原来的4倍,而扫描转换同样大小的图元却要花4倍时间76(2)非加权区域采样方法扫描转换线段的两点假设像素是数学上抽象的点,它的面积为0,它的亮度由覆盖该点的图形的亮度所决定直线段是数学上抽象直线段,它的宽度为0现实像素的面积不为0;直线段的宽度至少为1个像素;假设与现实的矛盾是导致走样出现的原因之一77解决方法:改变直线段模型,线上像素灰度不等方法步骤 1、将直线段看作具有一定宽度的狭长矩形; 2、当直线段与某像素有交时,求出两者相交区域的面积; 3、根据相交区域的面积,确定该像素的亮度值78方法性质直线段对一个像素亮度的贡献与两者相交区域的面积成正比当直线段和某个像素不相交时,它对该像素的亮度无影响相同面积的相交区域对像素的亮度贡献相同,而与这个相交区域落在像素内的位置无关关键:如何计算相交面积?79计算相交区域的面积(a)面积=D2/2k(b)面积=D–k/2像素实际显示的灰度值=所得面积*该像素的最大灰度值D/kDDk假设线段斜率为k像素实际大小80求相交区域的近似面积的离散计算方法将屏幕像素分割成n个更小的子像素;计算中心点落在直线段内的子像素的个数,记为m,m/n为线段与像素相交区域面积的近似值例目的:简化计算

n=16,m=3近似面积

=3/1681存在的不足像素的颜色或灰度值与相交(覆盖)区域的面积成正比,而与相交区域落在像素内的位置无关,仍会导致锯齿效应沿理想直线方向的相邻两个像素的颜色或灰度值会有较大差异82(3)加权区域采样方法权函数w(x,y)以像素A的中心为原点建立二维坐标系w(x,y)反应了微面积元dA对整个像素亮度的贡献大小,与dA到像素中心距离d成反比。高斯函数83权性位于(x,y)处的微面积元dA对像素的亮度的贡献为

w(x,y)dA相交区域对该像素的亮度贡献84实现步骤1.求直线段与像素的相交区域2.计算的值3.上面所得到的值介于0、1之间,用它乘像素的最大灰度值,即设该像素的显示灰度。问题:计算量大

特例:时,加权区域采样方法退化为非加权区域采样方法85离散计算方法1.将屏幕像素均匀分割成m个子像素,则每个子像素的面积为计算每个子像素对原像素亮度的贡献,记为

将保存在一张加权表中2.求出所有中心落于直线段内的子像素,记为3.计算所有这些子像素对原像素亮度贡献之和。该值乘以像素的最大灰度值即为像素的显示灰度值86w(x,y)是一个经验函数,对应的也是经验值w(x,y)可以用加权表M表示,取法有M=3×3M=5×587例加权表1个像素分解成3×3个子像素加权区域采样:非加权区域采样:s=3/988OpenGL函数函数启动反走样:glEnable(),参数为GL_POINT、GL_LINE_SMOOTH或GL_POLYGON_SMOOTH质量控制:glHint(GLenumtarget,GLenumhint),参数target为:GL_POINT_SMOOTH_HINT、GL_LINE_SMOOTH_HINT、GL_POLYGON_SMOOTH_HINT等参数hint为GL_FASTEST、GL_NICEST、GL_

温馨提示

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

评论

0/150

提交评论