计算机图形学基础教程(Visual C 版)第05章 二维图形变换与裁剪(清华大学出版社 孔令德).ppt

计算机图形学基础教程(Visual C 版)第05章 二维图形变换与裁剪(清华大学出版社 孔令德).ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学基础教程(Visual C 版)第05章 二维图形变换与裁剪(清华大学出版社 孔令德)

裁剪——点的裁剪 点是构成图形的基本元素 点的裁剪: 把图形全部打散成点进行裁剪? * 直线的裁剪是二维图形裁剪的基础 裁剪的实质是判断直线是否与窗口相交,如相交则进一步确定位于窗口内的部分 直接求交算法; Cohen-Sutherland算法(重点) 中点算法 二维直线段的裁剪 二维直线段的裁剪 已知条件: (1)窗口边界wxl,wxr,wyb,wyt的坐标值 (2)直线段端点p1p2的坐标值x1,y1,x2,y2? * 对于矩形窗口,任何直线至多有一段处于窗口之内 直线与窗口的关系 线段完全在窗口内,端点在内部 线段完全在窗口外,端点交点都在外部 线段部分在窗口内,部分在窗口外,端点和交点部分在内部,部分在外部 * 二维直线段的裁剪 直接求交算法 p2 ?? p1 ?? p3 ?? p4?? p5 ?? p6 实交点:直线段与窗口矩形边界的交点 虚交点:处于直线段延长线或窗口边界延长线上的交点。? 求交点: 把边界坐标代入直线方程 对端点和交点进行内外判断 直接求交算法 特点 每条相交的线段需要计算4个交点 内外判断:4个交点+2个端点 * Cohen-Sutherland直线裁剪算法 编码原理 裁剪步骤 交点计算公式 Cohen-Sutherland算法原理 Cohen-Sutherland直线裁剪算法是最早流行的编码算法 思想:线段P1P2分为三种情况: 若整条线段都在窗口内,应“简取”之 若整条线段都在窗口外,应“简弃”之 若与窗口相交,求交点,把线段分为两段,其中一段完全在窗口外,可弃之;另一段重复上述处理 编码原理 为了快速判断线段与窗口的关系,采用编码方法 延长窗口四条边,形成9个区域,每个区域赋予一个四位二进制代码,称为区域编码(Region Code,RC),用来标识直线端点的位置 * 第1位:端点在窗口左侧,即xwxl,则RC1=1,否则RC1=0。 第2位:端点在窗口右侧,即xwxr,则RC2=1,否则RC2=0。 第3位:端点在窗口下侧,即ywyb,则RC3=1,否则RC3=0。 第4位:端点在窗口上侧,即ywyt,则RC4=1,否则RC4=0。 0? 0? 0? 0? 0? 0? 1? 1? 1? 0? 0? 0? 0? 0? 0? 1? 1? 1? 1? 1? 1? 0? 0? 0? 0? 0? 0? 1? 1? 1? 0? 0? 0? 0? 0? 0? 区域编码 为保证窗口内直线端点的编码为零,四位二进制代码编码规则定义如下: 编码原理 Cohen-Sutherland算法 裁剪一条线段时,先求出直线段端点p1和p2的编码code1和code2,然后判断: 若code1|code2=0,两个端点的区域编码都为零,说明直线两端点都在窗口内,“简取” 若code1code2≠0,两个端点的区域编码的在一个相同位上都不为零,即直线位于窗外的同一侧,说明直线的两个端点都在窗口外,应“简弃” * 若直线不满足前两种条件,直线可能与窗口相交,需要计算直线与窗口边界的交点 交点将直线分为两段,分别进行再判断: 必有一段完全位于窗口外同侧,“简弃”之 对另一段赋予交点处的区域编码,再判断,再求交,直至找到完全位于窗口内的直线段为止 实现时,一般按左、右、下、上顺序检测区域编码的各位是否为0,求解不为0的对应的窗口边界与直线的交点 Cohen-Sutherland算法 端点坐标为P1(x1,y1)和P2(x2,y2)的直线,与窗口左边界(x=wxl)或右边界(x=wxr)交点的y坐标的计算公式为: 与窗口上边界(y=wyt)或下边界(y=wyb)交点的x坐标的计算公式为: 其中 交点计算公式 跨入计算机殿堂的入门篇 计算机图形学 施智平 shizhiping@ 二维图形扫描转换作业 试写出图示多边形的边表和扫描线y=4的有效边表。 P0 P1 P2 P3 P4 P5 P6 图4-33 多边形 A B C D P 二维图形变换作业 如图所示,求A(4,1)、B(7,3)、 C(7,7)、D(1,4)构成的四边形绕 P(5,4)逆时针旋转45°的变换矩阵和变换后图形的顶点坐标。 图形裁剪 * 图形裁剪 * 计算机内部存储的图形可以非常大,而屏幕显示的可以只是图形的一部分 在放大显示图形的一部分区域时,必须确定图形中哪些部分落在显示区内,哪些部分落在显示区外,以便显示落在显示区的部分图形。这个选择过程称为裁剪。 在进行裁剪时,画面中对应于屏幕显示的那部分区域称为窗口 * 计算机图形学中常用的坐标系 用户坐标系 观察坐标系 设备坐标系 规格化设备坐标系 * 用户坐标系(User Coordinate ,UC) 用户定义原始图形所采用的坐标系称为用户坐标系。 根

您可能关注的文档

文档评论(0)

gz2018gz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档