第2章基本图形生成算法.ppt

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

2.6 线宽与线型的处理 2.6.1 线宽 直线的线宽处理 圆弧的线宽处理 2.6.2 线型 2.6.1 线宽 在实际应用中,除了使用单象素的线条,还经常使用指定线宽和线型的直线与弧线。欲产生具有宽度的线,可以顺着扫描所产生的单象素线条轨迹,移动一把具有一定宽度的“刷子”来获得。 “刷子”的形状可以是一条线段或一个正方形。也可以采用区域填充的办法间接地产生有宽度的线。 直线的线宽处理 1、线刷子 两种类型 水平线刷子:对接近垂直的线用水平线刷子。 垂直线刷子:对接近水平的线用垂直线刷子。 画法 将线刷子的中心放在直线的端点,线刷子的中心沿着直线移动,直到直线的另一个端点 直线的线宽处理 1、线刷子 线刷子 a b 线宽为7的水平线刷子的实现 LineBrush int x,int y,int color putpixel x,y,color ; putpixel x+1,y,color ; putpixel x-1,y,color ; putpixel x+2,y,color ; putpixel x-2,y,color ; putpixel x-3,y,color ; putpixel x+3,y,color ; 线刷子的特性 优点:实现简单、效率高 缺点: 线段两端要么为水平的,要么是竖直的 当折线的两根直线的斜率分别大于1和小于1时,在顶点处有缺口 对于宽度为偶数像素的直线会产生偏移 线刷子产生的缺口 2 正方形刷子 画法 将方形刷子的中心放在直线的端点,方形刷子的中心沿着直线移动,直到直线的另一个端点 特点 对接近水平和接近垂直的线均适用。 优点:实现简单 缺点: 线段两端要么为水平的,要么是竖直的 对于宽度为偶数像素的直线会产生偏移 方刷子绘制的线条自然地带有一个“方线帽” 正方形刷子的实现 SquarBrush int x,int y,int color putpixel x,y,color ; putpixel x+1,y,color ; putpixel x-1,y,color ; putpixel x+1,y+1,color ; putpixel x-1,y+1,color ; putpixel x+1,y-1,color ; putpixel x-1,y-1,color ; putpixel x,y-1,color ; putpixel x,y+1,color ; 正方形刷子实例 圆弧的线宽处理 为生成具有一定宽度的圆弧,可考虑与生成具有一定宽度的直线类似的方法,即用“刷子”来刷出具有宽度的圆弧。 采用线刷子生成具有一定宽度的圆弧时,在小于45度的弧时用水平刷子,在大于45度的弧时用垂直刷子,即在经过曲线斜率为正负1的点时刷子的方向要改变。因此刷出的圆弧在接近水平或垂直方向的部分线条会粗一些,而在斜率接近正负1点附近则细一些。 2.6.2 线型的处理 用一个布尔值系列来存放线型值 把扫描转换算法中的无条件写象素语句改为 if(位串[i % 32]) putpixel(x,y,color) 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 * * * * * * * * * * * * 在黑板上把该模型画出来,最终组成了一个砖块。 * 开始在区域内部填充图案之前,必须确定图案的参考点,以确定图案的左下角与区域的哪个位置对齐,并由此确定图案中的像素点与区域中的像素点的对应关系。 * 在黑板上把该模型画出来,最终组成了一个砖块。 * 在黑板上把该模型画出来,最终组成了一个砖块。 * 2.4.5 图案填充--第二种对齐方法 步骤3 填充像素图案 若采用不透明方式填充图案,则应把算法中用前景色color写像素的操作putpixel x,y,color 改为: if pattern[x%m][y%n] putpixel int x,y,color ; else putpixel int x,y,bkcolor ; 当采用透明方式时,去掉else分句即可。 2.4.5 图案填充--第二种对齐方法 程序代码:有序边表填充算法图案填充、自己设计的有序边表填充算法图案填充。 有序边表填充算法图案填充 自己设计的有序边表填充算法图案填充 * 定义:确定图形在指定区域内的部分并保留和在区域外的部分并裁掉的过程称为裁剪。 假定:裁剪窗口为矩形窗口,左下点坐标为(XL, YB), 右上点坐标为(XR, YT) 2.5 图形裁剪 (XL, YB) (XR, YT) 2.5.1 直线段裁剪 编码裁剪算法(Cohen-Sutherland算法) 中点分割裁剪算法 梁友栋-Barsky算法

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档