计算机图形学规则形体,计算机图形学教案

3. 配对 4. 填色

扫描线基础算法的核心是计算扫描线与多边形的交点,然后配对,着色。其实求解交点这一步工作量是非常大的,所以根据前面介绍的多边形边的连贯性,区域的连贯性规则,我们可以构造更简单的扫描线算法(有的书称为有序边表算法)。下面是其的数据结构实现,改进后的扫描线算法就是简化了不断求解交点这么一个复杂的工作。 边填充法:

基本思想:光栅图形中,如果某区域已着上值为M的颜色值做偶数次求余运算,该区域颜色不变;而做奇数次求余运算,则该区域颜色变为值为新的颜色。这一规律应用于多边形扫描转换,就为边填充算法。 栅栏填充算法:

实质:改进的边填充算法

引入栅栏,以减少填充算法访问象素的次数。

栅栏:与扫描线垂直的直线,通常过一顶点,且把多边形分为左右

二半。

优缺点:减少了象素重复访问数目,但不彻底。 边界标志算法:

引入边标志:以克服象素被重复访问的缺点。 算法思想:

1. 轮廓线:对多边形的每一条边进行扫描转换,即对多边形边界所经过

的象素作一个边界标志。

2.填充:对每条与多边形相交的扫描线,按从左到右的顺序,逐个访问该

扫描线上的象素。

实现细节:

取一个布尔变量inside来指示当前点的状态,Inside 的初始值为假,每当当前访问象素为被打上标志的点,就把inside取反。对未打标志的点,inside不变。

4.3区域填充(种子填充算法)

上一节我们讲述了多边形的扫描转换,在实际应用中,我们可能会遇到任意的区域。要求对任意封闭的区域进行填充,不该变多边形的表示,

若inside为真,则点在多边形内,着色。 若inside为假,则点在多边形外,着背景色

区别于多边形的扫描转换。

种子填充算法思想

进行着色,因为多边形的边是直线,是规则的,所以计算起来也比较容易,但是对于任何不规则区域,考虑到边的不规则性,使用扫描线类填充算法更麻烦。种子填充算法思想是只考虑边界的颜色结构,从被填充区域内部任意一点出发,通过判断周边像素是不是边界而进行填充,直到填充完毕。

区域填充的概念

4连通:从区域内任意一点出发,可通过上、下、左、右四个方向到

达区域内的任意象素;

8连通:从区域内任意一点出发,可通过上、下、左、右、左上、左

下、右上、右下八个方向到达区域内的任意象素;

区域填充图案

多边形扫描转换与区域填充方法联系

4.4反走样

思考题:

1.如何绘制多边形?请在第二章绘制直线的基础上写出绘制多边形的方法。

2.如何判断多边形为凸或凹多边形?

3.试描述多边形扫面转换和区域填充的异同,并给出例子。 4.给出多边形扫描线算法改进的邻接链表算法例子。 用离散量表示连续量引起的失真现象称之为走样(aliasing) 走样原因:

1)光栅图形的象素是离散的,是有面积的,而非数学中面积为零的

点。

2)线段、多边形的边界等都是连续的。

因此,用离散的象素表示连续的线段或多边形的边界时光滑的线段

就成了阶梯状或锯齿状。

用于减少或消除走样现象的技术称为反走样(antialiasing) 硬件方法———提高分辨率

软件方法———区域采样,加权区域采样,半色调技术

前面介绍的扫描线,边填充算法等都是直接考虑多边形的边,最后

第五章 裁剪

教学学时:4课时 教学目的与要求:

让学生初步了解裁剪的定义,掌握对直线段裁剪的一些基本算法,掌握简单的对多边形裁剪的算法,掌握算法的理论原理,能够分析基本算法的优缺点。

教学重点:Cohen-Sutherland算法,中点分割算法,梁友栋—Barsky算法,

参数化算法,Sutlerland_Hodgman算法。

教学内容:

5.1 裁剪概述 5.2 二维裁剪 5.2.1 直线段裁剪 5.2.2 多边形裁剪

5.1 裁剪概述

在使用计算机处理图形信息时,遇到的情况往往是计算机内部存储的图形比较大,而屏幕显示只是图的一部分。例如,虽然计算机内部可以存储全国地图,但是,如果把全国地图整幅显示在屏幕上,则不能看到各地局部的细节。这时,可以使用缩放技术,把地图中的局部区域放大显示。在放大显示一幅图形的一部分区域时,必须确定图形中哪些部分落在显示区之内,哪些部分落在显示区之外,以便显示落在显示区内的那部分图形。这个选择处理过程称为裁剪。在进行裁剪时,画面中对应于屏幕显示的那部分区域称为窗口。一般把窗口定义为矩形,由上、下、左、 右四条边围成。裁剪的实质就是决定图形中哪些点、线段、文字以及多边形在窗口之内。

裁剪可以在世界坐标系中进行,即相对于窗口进行;也可以把对象变换为设备坐标之后相对于视区进行。前者可以把不在窗口范围内的部分剪掉, 避免了不必要的变换处理;后者在设备坐标系中裁剪易于用硬件实现。裁剪处理的基础是:点在窗口区域内外的判断以及计算图形元素与窗口区域边界的交点。其原理虽然简单,但涉及的图形元素多, 提高裁剪速度是算法应考虑的重要问题。以下介绍直线段裁剪算法及多边形裁剪算法。

5.2 二维裁剪

裁剪算法有二维的和三维的,裁剪对象也可以是规则形体,也可以是不规则形体。本章重点介绍二维裁剪,三维裁剪涉及到后面章节三维消隐等内容,后面再简要介绍。 5.2.1 直线段裁剪

直线段裁剪算法是复杂图元裁剪的基础。复杂的曲线可以通过折线段来近似,从而裁剪问题也可以化为直线段的裁剪问题。所以本章重点讨论直线段的裁剪算法。算法一般取的裁剪多边形都是矩形,有些特殊的算法采用任意多边形裁剪。 直接求交算法

Cohen-Sutherland算法

基本思想:

对于每条被裁剪线段P1P2分为三种情况处理: 直线与窗口边都写成参数形式,求参数值。 设直线P0P1为被裁剪线段,裁剪过程如下:

计算机图形学是研究用计算机表示、生成、处理和显示图形的学科。它涉及将几何模型和数据转变为图形的各种算法和技术。 图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看,图形主要分为两类,一类是由线条组成的图形,如工程图、等高线地图、曲面的线框图等,另一类是类似于照片的明暗图(Shading),也就是通常所说的真实感图 计算机图形产生的方法 (1)矢量法(短折线法) 任何曲线用许多首尾相连的短直线(矢量)逼近. (2)描点法(相临像素串接法) 曲线由发亮的相素点串接起来. 图形与图像两个概念间的区别越来越模糊,但还是有区别的:图像纯指计算机内以位图(Bitmap)形式存在的灰度信息,而图形含有几何属性,或者说更强调场景的几何表示,是由场景的几何模型和景物的物理属性共同组成的。 硬件的发展 1950年,第一台图形显示器作为美国麻省理工学院(MIT)旋风I号(Whirlwind I)计算机的附件诞生了。该显示器用一个类似于示波器的阴极射线管(CRT)来显示一些简单的图形。 1958年美国Calcomp公司由联机的数字记录仪发展成滚筒式绘图仪,GerBer公司把数控机床发展成为平板式绘图仪。在整个50年代,只有电子管计算机,用机器语言编程,主要应用于科学计算,为这些计算机配置的图形设备仅具有输出功能。计算机图形学处于准备和酝酿时期,并称之为:“被动式”图形
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值