西安交通大学计算机图形学第四章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Computer Graphics
15
线宽
可以通过在线段端点进行额外处理来生成平滑连接的粗折线。图4-6 示意了两线段平滑连接的三种可能方法。
➢ 斜角连接(miter join):通过 延伸两条线的外边界直到它们 相交而形成。
➢ 圆连接(round join):通过使 用直径等于线宽的圆弧边界将 两线段连接而形成。
因此,有些系统为颜色码存储提供两种功能,从而使用户能选择在帧缓冲器中 使用颜色表或直接存储颜色码。
Computer Graphics
34
灰度等级
对于不能显示彩色的监视器,颜色功能在应用程序中可以用于设置显 示的元素的灰度效果,即灰度等级( Grayscale )。
使用0到1范围内的数值来指定灰度级别,然后将其转换成适当的二进 制码存储在光栅中。
➢ 斜切连接(bevel join):通过 使用方帽并在两线段相交处的 三角形间隙中进行填充而形成。
Computer Graphics
16
画笔或笔刷的选择
有些图形软件包中, 可以选择画笔和笔刷 的方式来显示直线。 这种类型的选项包括 形状、尺寸和样式。 图4-7中给出了一些可 能的笔和刷的形状。
Computer Graphics
32
颜色表
在PHIGS 应用程序中,用户可以使用下列函数设置颜色表表项: setColourRepresentation (ws, ci, colorptr)
Computer Graphics
33
颜色表
在查找表中存储颜色码的优点:
使用颜色表可以提供合理的能够同时显示的颜色数量,而无需大容量的帧缓冲器。 对于大多数应用,256 或512 种不同颜色足以表示单个图像。
Computer Graphics
17
画笔或画刷的选择
这些形状可以按像素位置的数值形式存储在一个像素模 板中,然后再设置到线路径上。
Computer Graphics
18
画笔或画刷的选择
通过改变模板的尺寸,使用笔(刷)形状生成的直线可以有多种宽度。 通过将样式值加到画笔和画刷的标记上,可以按选定的样式显示线段。
折线程序以当前颜色显示折线,通过使用setPixel程序,将这种颜色 设置在帧缓冲器中沿线路径的像素位置上而实现折线显示。
颜色选择的数目取决于帧缓冲器中每个像素的有效值数目。 在PHIGS中,使用下列函数设置线的颜色值:
setPolylineColourIndex (lc)
Computer Graphics
例如,掩模11100生成入图4-12所示的虚线圆弧。
Computer Graphics
23
4-2曲线属性
可以利用圆的对称性在各个八分象限内生成虚线圆。但 是,从一个八分象限到另一个八分象限时,必须交换像 素位置以保持划线和间隙的正确顺序。
类似于画线算法,像素掩模显示的划线和中间间隙,也 是按照曲线的斜率而变化。
例如,要显示等长划线,就必须在沿圆周移动时调整绘制每根 划线的像素数目。
我们使用沿等角弧绘制像素的方法,代替使用等长段的 像素掩模来生成等长划线。
Computer Graphics
24
4-2曲线属性
各种宽度的光栅曲线可用水平或垂直像素段进行显示。 曲线斜率的绝对值小于1时,使用垂直段;斜率绝对值大
Computer Graphics
5
线型
为了在PHIGS应用程序中设置线段属性,用户需要调用 函数: setLinetype ( lt )
lt为1、2、3、4分别生成实线、虚线、点线、点划线。
Computer Graphics
6
线型
光栅线算法通过绘制像素段来显示线型属性。
对于各种划线、点线和点划线样式,画线程序沿直线路 径输出一些连续像素段,在每两个实心段之间有一个给 定长度的空白中间段。
Computer Graphics
12
线宽
使用水平或垂直像素段实现线宽选择的另一个问题是: 无论斜率大小,所生成直线的端点都是水平的或垂直的。 这对于较粗的直线的影响则更为突出。
我们可以通过添加线帽(line cap)来调整线端的形状, 从而给出更好的外观。
Computer Graphics
13
大家好
1
第4章 输出图元的属性
杨新宇
Computer Graphics
2
主要内容
1. 线属性 2. 曲线属性 3. 颜色和亮度等级 4. 区域填充属性 5. 字符属性 6. 束属性 7. 查询函数 8. 反走样
Computer Graphics
3
4-1 线属性
线段的基本属性有线型、线宽和线色。 在一些软件包中,可以使用选择的画笔和笔刷来显示
Computer Graphics
19
画笔或画刷的选择
在绘画软件包中,可以额外提供模拟 绘画技巧的显示。
图4-11示例了通过不同类型的毛笔笔画 建模而显示的一些图案。
Computer Graphics
20
线颜色
当系统提供颜色(或亮度)选择时,给出的当前颜色索引的参数则 包含在系统属性值表中。
线宽
线帽的一种形式是方帽(butt cap),这种形式通过调整所构成的平行线的 端点位置,使粗线的显示具有垂直于线路径的正方形端点。假如指定直线的 斜率为m,那么粗线的方端的斜率为-1/m。
另一种线帽是圆帽(round cap),这种形式通过对每个方帽添加一个填充的 半圆而得到。圆弧的圆心在线段的端点,其直径与直线宽度相等。
Computer Graphics
10
线宽
对于斜率绝对值小于1的直线,可修改画线程序,通过在 沿线的每个x位置绘制像素的垂直段来显示粗线。每段的 像素数目等于参数lw的整数值。
Computer Graphics
11
线宽
对于斜率绝对值大于1的直 线,可以在水平段交替地 拾取线段路径左边和右边 的像素而形成粗线。这个 方法示例于图4-4中,其线 宽为4,使用水平像素段进 行绘制。
21
4-2 曲线属性
曲线属性的参数与线段相同。 我们可以使用各种颜色、宽度、点划线模式和有效的画
笔和画刷选择来显示曲线。 采用画曲线算法来实现属性选择,这一点类似于画直线。
Computer Graphics
22
4-2曲线属性
在实现线型选择中讨论的像素模板(掩模),也可用于在光栅曲线 算法中生成划线和点线模式。
持原曲线的位置。
Computer Graphics
26
4-2曲线属性
曲线的画笔(或笔刷)显示,可以使用在线段中讨论的相同技术来生成。 在图4-15中,我们沿线路径重复画笔的形状,从而生成第一象限内的圆弧。 这里,矩形画笔的中心移向后继曲线位置,从而产生向下的曲线形状。
Computer Graphics
这样可以使所设置的亮度容易移植到具有不同灰度等级的系统中。
Computer Graphics
35
灰度等级
表4.2列出了四级灰度等级系统中亮度码的详细说明。
另一种存储亮度信息的方案是,将每个亮度码直接转换成电压值,该 电压值在所使用的输出设备上产生这些灰度等级。
Computer Graphics
36
灰度等级
如果在一个配置中同时可以使用多个输出设备,那么所有的监视器可能使 用相同的颜色表接口。在这种情况下,可以使用图4-17中所示的RGBaidu Nhomakorabea值范 围来建立单色显示器的颜色表。对于给定的颜色索引ci,其亮度显示可计 算为: 亮度=0.5[min(r,g,b)+max(r,g,b)]
Computer Graphics
表项还可以随时改变,从而使用户能容易地测试在设计、场景或图形中使用的不同 的颜色组合,而无需改变对图形数据结构的属性设置。
可视化应用在帧缓冲器中存储类似能量这样的物理量,并使用查找表测试各种颜色 编码而不改变像素值。
而且,在可视化和图像处理应用中,颜色表是设置颜色阈值的简便工具,可以使指 定阈值上下的所有像素设置为同样的颜色。
第三种线帽是突方帽 (project round cap), 简单地将线段向两头延 伸一个线宽并添加方帽。
Computer Graphics
14
线宽
生成粗折线需要一些额外的考虑。通常,显示单根线段所 用的方法不能生成平滑连接的一系列线段。
例如,使用水平或垂直像素段显示粗线,会在不同斜率的线段的 连接处,其水平段变成垂直段时留下间隙。
38
4-4 区域填充属性
➢ 填充模式 ➢ 图案填充 ➢ 软填充
Computer Graphics
37
4-4 区域填充属性
对于填充一个定义的区域的选择内容,包括选择实心区域 颜色(纯色)或图案填充方式,以及选择某种颜色和图案。 取决于可用软件包的处理能力,这些填充选择可以应用于 多边形区域,或是用于曲线边界定义的区域。
此外,区域也可以使用多种画笔样式、颜色和透明度参数 进行绘制。
Computer Graphics
于1时,绘制水平段。图4-13示例了使用这种方法显示在 第一象限中宽度为4的圆弧。
Computer Graphics
25
4-2曲线属性
另一种显示粗曲线的方法是:填充两条距离等于预定宽度的平行曲线路径 间的区域。
我们可以用指定的曲线路径作为第一条边界,并在其内侧或外侧建立第二 条边界。
➢ 这种方法使得原始曲线路径按所选的第二条边界向内或向外偏移。 ➢ 可以通过在指定的曲线路径两侧以宽度的一半为距离,设置两条边界曲线来保
Computer Graphics
28
4-3 颜色和亮度等级
在彩色光栅系统中,可选颜色的数量取决于帧缓 冲器中为每个像素提供的存储器数量。
颜色信息可以通过两种方法存储在帧缓冲器中:
可以将颜色码直接存储在帧缓冲器中; 把颜色码放在一个独立的表中,并使用像素值作为这
个表的索引。
Computer Graphics
27
4-3 颜色和亮度等级
按照特定系统的能力和设计目标,可以为用户提供各种颜 色和亮度等级的选择。
通用光栅扫描系统通常提供较多的颜色,而随机扫描监视器最多 只能提供几种颜色以供选择。
颜色选项使用0到某一正整数之间的整数值进行编码。
对于CRT 监视器,颜色码被转换成电子束的强度等级。 对于彩色绘图仪,编码控制喷墨范围或画笔选择。
如果要进行精确的绘制,那么对任 何直线方向的划线长度应保持近似 的相等。因此,可按照直线的斜率 来调整实心段和中间空白段的像素 数目。
Computer Graphics
8
线宽
线宽选择的实现取决于输出设备的能力。 在视频监视器上的粗线可以用相邻的平行线进行显示;
而在笔式绘图仪上则可能需要更换画笔。 类似PHIGS中的其他属性,使用线宽命令来设置属性表
直线。
Computer Graphics
4
线型
线型属性包括实线、虚线和点线等。通过设置沿线路径显示的实线 段的长度和间距来修改画线算法,以生成各种类型的线。
虚线:可以通过在实线段之间插入与实线段等长的空白段来显示。划线 的长度和空白段长度经常作为用户的选项而进行指定。
点线:可以通过生成很短的划线和等于或大于划线大小的空白段而进行 显示。
中的线宽值。使用下面命令对线宽属性进行设置: setLinewidthScaleFactor ( lw )
Computer Graphics
9
线宽
在光栅实现中(如Bresenham 算法),通过在每个采样 位置处使用一个像素来生成标准线宽。
其他线宽则是作为标准线宽的正整数倍,通过沿相邻平 行线路径绘制额外的像素而显示的。
段长度和中间空白段的像素数目可以用像素掩模指定, 像素掩模是包含数字0和1的字符串,用来指出沿线路径 需要绘制哪些位置。
在二值系统上,掩模给出沿线路径应该装入帧缓冲器的 位置,从而显示选定的线型。
Computer Graphics
7
线型
使用固定数目的像素来绘制划线会 产生如图4-2所示的、在不同的直 线方向生成不等长划线的现象。
29
4-3 颜色和亮度等级
利用直接存储策略,一旦在应用程序中指定了某种颜色码, 那么就在帧缓冲器中为以这种颜色显示的输出图元的每个 组成像素设置对应的二进制值。
Computer Graphics
30
4-3 颜色和亮度等级
颜色表 灰度等级
Computer Graphics
31
颜色表
图4.16示例了在颜色查找表(color lookup table或视频查找表video lookup table) 中存储彩色值的一种方案。在该表中,帧缓冲器值作为 颜色表的索引。