计算机图形处理及其在工程中的应用 教学课件 ppt 作者 杨培中 赵新明蒋丹 第2章

上传人:E**** 文档编号:89190252 上传时间:2019-05-21 格式:PPT 页数:67 大小:1.35MB
返回 下载 相关 举报
计算机图形处理及其在工程中的应用 教学课件 ppt 作者 杨培中 赵新明蒋丹 第2章_第1页
第1页 / 共67页
计算机图形处理及其在工程中的应用 教学课件 ppt 作者 杨培中 赵新明蒋丹 第2章_第2页
第2页 / 共67页
计算机图形处理及其在工程中的应用 教学课件 ppt 作者 杨培中 赵新明蒋丹 第2章_第3页
第3页 / 共67页
计算机图形处理及其在工程中的应用 教学课件 ppt 作者 杨培中 赵新明蒋丹 第2章_第4页
第4页 / 共67页
计算机图形处理及其在工程中的应用 教学课件 ppt 作者 杨培中 赵新明蒋丹 第2章_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《计算机图形处理及其在工程中的应用 教学课件 ppt 作者 杨培中 赵新明蒋丹 第2章》由会员分享,可在线阅读,更多相关《计算机图形处理及其在工程中的应用 教学课件 ppt 作者 杨培中 赵新明蒋丹 第2章(67页珍藏版)》请在金锄头文库上搜索。

1、1,计算机图形处理 及其在工程中的应用,第二章 计算机图形处理基础,2.1 概述 2.2 图形变换 2.3 基本算法,第二章 计算机图形处理基础,内容,2.1 概述 工程设计、科学计算中涉及的图形很多。 为了在光栅图形显示器上显示相应的图形,必须将相应的图形光栅化,即确定显示器上的象素集合及对应的颜色,也称为图形的扫描转换。,第二章 计算机图形处理基础,2.2 基本算法 2.2.1直线的扫描转换 数学上的理想直线没有宽度,非常光滑。然而在光栅图形显示器上进行显示时,只能用尽可能接近直线理想位置的有限个像素来表示,称为直线的扫描转换。 单象素宽的直线扫描转换有三种常用算法:数值微分法、中点画线法

2、和布莱森汉姆画线法。,第二章 计算机图形处理基础,2.2 基本算法 2.2.1直线的扫描转换 1、数值微分法,第二章 计算机图形处理基础,2.2 基本算法 2.2.1直线的扫描转换 2、中点画线法,第二章 计算机图形处理基础,2.2 基本算法 2.2.1直线的扫描转换 3、布莱森汉姆画线法 本算法与中点画线法类似,通过在每列像素中确定与理想直线位置最近的像素来进行直线的扫描转换。 其基本原理为:通过各行、列像素点中心构造一组虚拟网格线,按直线从起点到终点的顺序计算其与各垂直网格线的交点,然后确定该列像素中与此交点最近的像素。,第二章 计算机图形处理基础,2.2 基本算法 2.2.1直线的扫描转

3、换 3、布莱森汉姆画线法,第二章 计算机图形处理基础,2.2 基本算法 2.2.2圆弧的扫描转换算法 1、中点画圆法,第二章 计算机图形处理基础,2.2 基本算法 2.2.2圆弧的扫描转换算法 2、布莱森汉姆画圆法,第二章 计算机图形处理基础,2.2 基本算法 2.2.3一般曲线的扫描转换 逐点比较法 确定偏差判别函数 规定走向 偏差判别 终点判别,第二章 计算机图形处理基础,2.2 基本算法 2.2.3一般曲线的扫描转换 逐点比较法,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 区域填充根据填充图案可分成两种:(1)用单一颜色对区域进行填充;(2)用一种图案对区域进行填

4、充。 区域填充的步骤为:(1)确定需要填充的象素点;(2)确定填充的图案(颜色)。,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.1 单一颜色的多边形区域填充 1、多边形区域填充基本内容 多边形区域填充的基本想法是:按顺序计算扫描线与多边形的相交区间,然后对这些区间的象素赋上相应的颜色。,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.1 单一颜色的多边形区域填充 1、多边形区域填充基本内容,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.1 单一颜色的多边形区域填充 1、多边形区域填充基本内容

5、多边形对于一条扫描线的处理步骤为: (1)计算扫描线与多边形的交点; (2)把所有交点按x坐标递增顺序进行排序; (3)将排序的交点进行配对,确定欲填充的区间。如第一点与第二点,第三点与第四点等。 (4)对配对区间内的象素进行相应的颜色设置。,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.1 单一颜色的多边形区域填充 1、多边形区域填充基本内容 对多边形区域进行填充时,关键的问题是 (1)当多边形的顶点成为交点时,对它的取舍问题; (2)多边形边界上的象素的取舍问题。,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.1 单一颜色

6、的多边形区域填充 2、多边形区域的边填充算法 边填充算法为实区域扫描转换算法,其基本方法为:将扫描线与多边形交点的右方所有象素取补。,第二章 计算机图形处理基础,2.2 基本算法,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.1 单一颜色的多边形区域填充 2、多边形区域的边填充算法-边标志算法,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.1 单一颜色的多边形区域填充 3、多边形区域的种子填充算法 种子填充算法的基本思想为:假定多边形区域内部有一象素(种子)是已知的,并由此开始遍历区域内的所有象素。区域有四向连通区域和八向连通

7、区域两种。 四向连通区域是指从区域内任一点出发,在不超越区域边界的前提下,可通过上、下、左、右四个方向移动到区域内的任何一个点。 八向连通区域是指从区域内任一点出发,在不超越区域边界的前提下,可通过上、下、左、右、左上、左下、右上、右下八个方向移动到区域内的任何一个点。,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.1 单一颜色的多边形区域填充 3、多边形区域的种子填充算法,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.2 多边形区域图案填充 图案填充的关键是处理好图案和填充区域的位置关系。也就是要确定图案的定位点,使得图案上

8、的象素能方便地与填充区域上的象素进行对应。 下面介绍两种方法来确定图案的定位点。,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.2 多边形区域图案填充 (1)将图案的左上角象素点定位在多边形的一个顶点上。当填充区域移动时,图案会随之移动。这样看上去就比较自然,譬如工程图样中的剖面线填充等。但是多边形上并没有明显的点作为定位点,尤其是边界光滑的填充区域。因此,必须在填充区域边界或内部指定一个定位点。,第二章 计算机图形处理基础,2.2 基本算法 2.2.4 区域填充 2.2.4.2 多边形区域图案填充 (2)假定整个屏幕已经被图案覆盖,填充区域被看成是透明的,图

9、案可以显现出来。此时,定位点可以设为屏幕原点。当填充区域移动时,背景图案并不移动,因此看到的图案可能会发生变化,看起来就有些不自然。此方法比较简单,并且在相邻区域用同一图案填充时,可以达到无缝连接的效果。,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 进行计算机图形处理时,由于图形比较大,屏幕往往只能显示图形的一部分。 因此必须确定图形的哪些部分落在显示区之内,这个处理过程称为裁剪。 裁剪时,对应屏幕显示的区域称为窗口。 一般情况下,窗口为矩形,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.1 线段裁剪 常见的线段裁剪算法有: Cohen-Sut

10、herland 裁剪算法 中点分割裁剪算法 参数化裁剪算法。,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.1 线段裁剪 1、Cohen-Sutherland 裁剪算法 有三种关系: 线段完全落在裁剪窗口内,则“取”之。 线段完全落在裁剪窗口外,则“舍”之。 线段部分落在裁剪窗口内,部分落在裁剪窗口外。,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.1 线段裁剪 1、Cohen-Sutherland 裁剪算法,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.1 线段裁剪 1、Cohen-Sutherland

11、 裁剪算法 窗口编码方法: 延长裁剪窗口的各边,形成9个小区域。 每个区编制一个二进制四位代码,从左到右依次表示上、下、右、左。 0100表示该区在窗口的正下方;0110表示该区在窗口的右下方。,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.1 线段裁剪 1、Cohen-Sutherland 裁剪算法,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.1 线段裁剪 1、Cohen-Sutherland 裁剪算法 Cohen-Sutherland 裁剪算法的步骤如下: (1)求出线段两端点的区域编码number1和number2; (2)如

12、果number1=number2=0,则整条线段都落在窗口内;如图2-15中的线段AB;,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.1 线段裁剪 1、Cohen-Sutherland 裁剪算法 (3)如果number1和number2的按位与运算的结果number1&number20,说明两个端点同在窗口的上、下、左或右方,则整条线段都落在窗口外; (4)如果(2)和(3)都不满足,则求出线段与窗口某边的交点,把线段一分为二,其中必有一段完全落在窗口外,然后对另一段重复步骤(2)、(3)和(4)。,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪

13、 2.2.5.1 线段裁剪 2、中点分割裁剪算法 中点分割裁剪算法的前三个步骤与Cohen-Sutherland 裁剪算法完全相同 步骤(4)为:把线段等分为两段,重复步骤(2)、(3)、(4)即可。,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.1 线段裁剪 3、参数化裁剪算法 1978年,Cyrus和Beck开发了一种完全不同的线段裁剪算法,而且效率很高。 Cyrus-Beck线段裁剪算法适用于矩形以及任意凸多边形。 Liang 和Barsky后来又独立地开发出了一种效率更高的参数化线段裁剪算法。,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪

14、 2.2.5.1 线段裁剪 3、参数化裁剪算法 Cyrus-Beck线段裁剪算法,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.1 线段裁剪 Cohen-Sutherland 裁剪算法与中点裁剪算法在区码测试阶段能以位运算方式高效率地进行,因此当大多数线段能够简单取舍时,效率较高。 Cyrus-Beck线段裁剪算法对于有很多线段需要裁剪时,效率很高。,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.2 多边形裁剪 对于多边形裁剪,可以运用边裁剪算法对它的每一条边进行裁剪。然而,这样做会把原来封闭的多边形变成不封闭的或者一些离散的线段。

15、为了保证多边形裁剪后仍然是封闭的,下面介绍Sutherland和Hodgeman提出的逐次多边形裁剪算法,依次用窗口的一条边来裁剪多边形。,第二章 计算机图形处理基础,2.2 基本算法 2.2.5 裁剪 2.2.5.2 多边形裁剪,第二章 计算机图形处理基础,2.2 基本算法 2.2.6 反走样 由于直线或多边形边界是以一系列相同亮度的离散象素在光栅图形显示器上显示的,因此在绘制非水平或者非竖直的直线或多边形边时,通常会出现锯齿现象。 用离散量来表示连续量所引起的失真称作走样(Aliasing)。用来消除这种走样的方法和技术称为反走样(Antialiasing)技术。常用的反走样技术有两种:提

16、高分辨率和区域采样。,第二章 计算机图形处理基础,2.2 基本算法 2.2.6 反走样 2.2.6.1 提高分辨率,第二章 计算机图形处理基础,2.2 基本算法 2.2.6 反走样 2.2.6.2 区域采样,第二章 计算机图形处理基础,2.2 基本算法 2.2.7线宽与线型的处理方法 1线宽的处理 在进行图形处理时,除了使用单像素宽的线条外,还常常使用指定线宽的线条。 要想生成有宽度的线条,可以顺着该线条的中心位置线,移动一把具有指定宽度的“刷子”来生成。 “刷子”的形状可以是一条线段或一个正方形,分别称谓“线刷子”和“正方形刷子”。,第二章 计算机图形处理基础,2.2 基本算法 2.2.7线宽与线型的处理方法 1线宽的处理 “线刷子”,第二章 计算机图形处理基础,2.2 基本算法 2.2.7线宽与线型的处理方法 1线宽的处理 “正方形刷子”,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号