- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]CG04_6裁剪_7反走样
4.6 裁剪算法 裁剪概念 图形裁剪 图示 裁剪与扫描转换 本节主要内容 线段的裁剪 线段的裁剪 Cohen-Sutherland算法 三种情况图示 Cohen-Sutherland算法 编码的含义 线段的编码 Cohen-SutherLand算法 图示的线段 裁剪一条线段时 先求出P1P2所在的区号code1,code2。 若code1=0,且code2=0,则线段P1P2在窗口内,应取之。 若按位与运算code1code2≠0,则说明两个端点同在窗口的上方、下方、左方或右方。可判断线段完全在窗口外,可弃之。 否则,按第三种情况处理。求出线段与窗口某边的交点,在交点处把线段一分为二,其中必有一段在窗口外,可弃之。在对另一段重复上述处理。 边界求交 如何求交点 例 算法实现 编码 编码 编码 中点分割法 与Cohen-Sutherland算法类似 首先对线段端点进行编码 并把线段与窗口的关系分为三种情况: 全在、完全不在和线段与窗口有交 对前两种情况,进行一样的处理 用中点分割的方法求出线段与窗口的交点 中点分割法(最远的可见点) 从P0出发找最远可见点的方法 从P0出发找最远可见点的方法 中点分割法(最近的可见点) 中点分割法 参数法(Cyrus-Beck算法) 参数法 参数法 参数法 参数法 参数法 梁友栋-Barsky直线裁剪算法 四种算法比较 梁友栋-Barsky直线裁剪算法 梁友栋-Barsky直线裁剪算法 分析 分析 分析 分析 4.6.2多边形的裁剪 分析 分析 逐次裁剪多边形的流程 4.6.3字符裁剪 字符裁剪 4.7反走样 定义 各种图形在显示器上是用离散的像素来表示的,这种用离散量表示连续量造成的失真,叫做走样(混淆 aliasing) 用于减少或消除这种效果的技术,就称为反走样(反混淆 antialising)。 4.7反走样技术 提高分辨率 4.7反走样技术 提高分辨率 4.7反走样技术 加权平均 4.7反走样技术 简单的区域取样 4.7反走样技术 简单的区域取样 4.7反走样技术 加权的区域取样 相交区域对象素亮度的贡献依赖于该区域与象素中心的距离 特点: 接近理想直线的象素将被分配更多的灰度值;缩小直线上相邻象素的灰度差。 000,000,0FF,0FE,004,040,004,040,07F,0FC,044,044,044,044,044,044,044,044,048,03C,050,004,060,004,040,004,07F,0FC,040,004,000,000 000,000,03F,0FC,001,000,001,000,001,000,001,000,001,000,001,000,001,000,001,000,001,000,001,000,001,000,0FF,0FE,000,000,000,000 001,000,001,000,001,000,001,000,001,000,0FF,0FE,001,000,002,080,002,080,002,040,004,040,004,020,008,010,010,018,020,00E,040,004 示例 16X16点阵三个汉字 出栈的情况 0 2 4 6 8 10 2 4 6 8 X Y (5,5) (4,5) (3,5) (2,5) (2,6) (3,4) (4,4) (5,4) (6,4) (6,5) (6,6) (5,6) (5,7) (3,3) (4,4) (5,6) (6,5) (5,4) 从P0出发找最近可见点 的方法是: 先求P0P1的中点Pm,若P0Pm不能定为显然不可见,则取P0Pm代替P0P1,否则取PmP1代替P0P1 P0 P1 A B Pm 再对新的P0P1求中点Pm。 重复上述过程,直到P1Pm长度小于给定的精度ε为止。此时P0即为所求A点! P0可见否? P0P1显然不可见 Pm = (p0+p1)/2 |Pm - P1|ε? P0Pm显然不可见? P0 = Pm P1 = Pm 否 否 否 是 P0 = Pm exit 原线完全不可见 exit P0 = Pm exit 是 否 是 ????????动画演示:Cohen-Sutherland算法和中点分割算法的比较 假定A是区域R边界上的一点,N是区域边界在A点内法向量。线段P1P2用参数方程表示: ????? P(t)=(P2-P1)t+P1??? (0≤t≤1) 对于线段上任意一点P(t),有三种可能性: ???N·[P(t)-A]0,这时P(t)必
文档评论(0)