计算机图形学规则形体,计算机图形学教案
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为被裁剪线段,裁剪过程如下:
计算机图形学规则形体,计算机图形学教案相关推荐
- 计算机图形学规则形体,计算机图形学 三维形体的表示ppt课件.ppt
<计算机图形学 三维形体的表示ppt课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机图形学 三维形体的表示ppt课件.ppt>文档请在 ...
- 计算机图形学生活应用,计算机图形学的应用实例(计算机图形作业).doc
计算机图形学的应用实例(计算机图形作业).doc 计算机图形学大作业 计算机图形学的应用实例 班级: 学号: 姓名: 2012-03-12 计算机图形学的应用实例 一.计算机图像学简介 计算机图形学是 ...
- 计算机图形学考题答案,计算机图形学考题答案.doc
文档介绍: .页眉. .页脚. 1 点阵法与参数法点阵法: 用具有颜色信息的点阵来表示图形的一种方法, 它强调图形由哪些点组成, 并具有什么灰度或色彩; 参数法: 以计算机中所记录图形的形状参数与属性 ...
- 计算机图形学透视投影知识点,计算机图形学
计算机图形学期末复习 第一章 绪论 计算机图形学定义:计算机图形学是研究通过计算机将数据转换成图形,并在专门显示设备上显示的原理.方法和技术 第二章 计算机设备及硬件系统 知识点 阴极射线管(CRT) ...
- 现代计算机图形学入门ppt,计算机图形学完整课件.ppt
计算机图形学完整课件.ppt (326页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 计算机图形学 第一章.绪论第二章.基本图形生成原理第 ...
- 计算机图形学三大应用领域,计算机图形学作业
计算机图形学作业题 1. 计算机中由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)加属性参数(颜色.线型等)来表示图形称图形的参数表示:枚举出图形中所有的点称图形的点阵表示,简称为图像(数 ...
- 广联达计算机图形学面试题,计算机图形学 面试题.docx
计算机图形学 面试题 计算机图形学 面试题 第一章概述;1.计算机图形学研究的是什么?;计算机图形学研究的是通过计算机将数据转换为图形,;2.计算机图形学处理的图形有哪些?;计算机图形学处理的图形有: ...
- 计算机图学概念,计算机图形学(概念).doc
计算机图形学(概念) 1.计算机图形学(Computer Graphics) 计算机图形学是研究怎样利用计算机来产生存储和处理图形的原理.方法和技术的一门学科. IEEE定义:Computer gra ...
- 吉林大学计算机图形学实验_计算机图形学学习笔记(一):图形学概论
第一章 计算机图形学概论 1.1 全书概述 图形学基本知识 光栅图形学 扫描转换.区域填充.裁减.反走样.消隐 二维.三维图形变换及观察 几何造型 参数曲线曲面基本概念.Bezier曲线曲面.B样条曲 ...
最新文章
- 一个神秘URL酿大祸,差点让我背锅!
- eeglab教程系列(14)-Working with ICA Components
- 不属于python开发用户界面第三方库的是-模拟试卷C【单项选择题】
- 10月29日云栖精选夜读 | 十条精进原则,给迷茫于劳而无功的技术人
- 博图编写温度程序_NTC测量温度的两个不同的数值转换程序,你会选择哪一个
- boost::allocator_max_size的实例
- 【SDL】SDL学习笔记二 定时器
- 系统测试相关知识笔记
- 二次重建基本完成辣!
- 4014-基于邻接表的长度为k的简单路径的求解(C++,附思路)
- Redis:分布式锁Watch
- 【转】JavaScript中的匿名函数及函数的闭包
- 在Linux下安装bind服务,在Linux系统下安装DNS服务器BIND
- 增强 for 循环 和 普通for 循环的 区别总结
- 谷歌被墙,如何给谷歌浏览器添加迅雷下载插件
- 安卓模拟器刷小米系统_小米5x原生rom系统刷机-小米5X MIUI10刷机包下载V9.7.21最新版-西西软件下载...
- 数据安全治理方法导论
- linux so lazyload,linux函数深入探索——open函数打开文件是否将文件内容加载到内存空间...
- vue + echarts 之世界地图
- 编程笔试(解析及代码实现):求和为N的正整数序列之实现一个函数,输入为一个正整数N (比如100),输出为所有和等于N的[连续]正整数序列
热门文章
- 固态函数不正确_固态硬盘可靠吗?
- Vue2学习小记-给Vue2路由导航钩子和axios拦截器做个封装 1
- atcoder 2017Code festival C ——D题 Yet Another Palindrome Partitioning(思维+dp)
- MySQL5.7重置root密码
- BEAST 漏洞相关
- 二维码_encode与decode
- Oracle学习之DATAGUARD(八) Switchover与failover
- [转]一张图帮你搞定职业规划
- Silverlight 2 DataGrid December 2008
- OpenCV-获取图像中直线上的数据