- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CG-4-2 区域填充
4.4 区域填充 4.4.1 有序边表填充算法 4.4.2 边填充算法 4.4.3 种子填充算法 4连通区域和8连通区域 四连通区域 八连通区域 区域的表示方法 内点表示 枚举出区域内部的所有像素 内部的所有像素着同一个颜色 边界表示 枚举出边界上所有的像素 边界上的所有像素着同一颜色 内部像素着与边界像素不同的颜色 4.4.4 圆和椭圆的填充 4.4.5 图案填充 4.4.6 线宽与线型的处理 1、 直线线宽的处理 2、 圆弧线宽的处理 3、 线型的处理 线刷子的原理最简单。假设直线斜率在[–1, 1]之间,这时可以把刷子置成垂直方向,刷子的中点对准直线一端点,然后让刷子中心往直线的另一端移动,即可“刷出”具有一定宽度的线。 当直线斜率不在[–1,1]之间时,把刷子置成水平方向。具体实现线刷子时,只要对直线扫描转换算法的内循环稍作修改。例如,当直线斜率在[–1, 1]之间时,把每步迭代所得的点的上下方半线宽之内的像素全部置成直线颜色 若线宽为5个像素,则把原来的putpixel(x, y,color)语句扩展为下列循环语句: for(i=-2;i=2;i++) putpixel (x,y+i,color); 图3.22所示为线宽是5个像素的情形。算法简单、效率高是线刷子的优点。但是,线的始末端总是水平或垂直的。因此,当线宽较大时,看起来很不自然。当比较接近水平的线与比较接近垂直的线汇合时,汇合处外均将有缺口。如图3.23所示。 图3.22 5个像素宽的线刷子 图3.23 线刷子的缺口 线刷子还会使斜线与水平(或垂直)线不一样粗。对于水平线或垂直线,刷子与线条垂直,因而最粗。其粗细与指定线宽相等。而对于45°斜线,刷子与线条成45°角,粗细仅为指定线宽的0.7倍。 为了生成有宽度的线,还可以用方形的刷子。把边宽为指定线宽的正方形的中心沿直线作平行移动,即可获得具有线宽的线条,如图3.24所示为用正方形刷子绘制的具有宽度的线条。比较图3.24与图3.22可知,用方形刷子所得的线条比用线刷子所绘制的线条要粗一些。 线宽为5个像素的方刷子 与线刷子类似,用方刷子绘制的线条始未端也是水平或垂直的,且线宽与线条方向有关。与线刷子的情形相反,对于水平线与垂直线,线宽最小,而对于斜率为±1的线条,线宽最大,为垂直(水平)线宽度的1.41倍。 实现正方形刷子最简单的办法是,把方形中心对准单像素宽的线条上各个像素,并把方形内的像素全部置成线条颜色。若线宽为5,则可把原来的putpixel (x,y,color)语句改为下列语句组: for (i = –2; i=2; i++) for (j = –2; j =2; j++) putpixel (x+i, y+j, color); 这种简单方法将会重复地写像素。这是因为对应于相邻两像素的方形一般会重叠。为了避免重复写像素,可以采用与活化边表类似的技术。为每条扫描线建一个表,存放该扫描线与线条的相交区间左右端点位置。在每个像素使用方形刷子时,用该方形与各扫描线的相交区间端点坐标去更新原表内端点数据。 生成具有宽度的线条还可以采用区域填充的算法。先算出线条各角点,再用直线段把相邻角点连接起来,最后调用多边形填充算法把所得的四边形进行填色,即得到具有宽度的线条。用这种方法还可以生成两端粗细不一样的线条。 为了生成具有宽度的圆弧,可采用与直线情形类似的方法,当采用线刷子时,在经过曲线斜率为±1的点时,必须把线刷子在水平与垂直方向之间切换。由于线刷子总是置成水平或垂直的,所以在曲线接近水平与垂直的地方,线条更粗一些,而在斜率接近±1的点附近,线条更细一些,如图(a)所示。 当采用正方形刷子时,无需改变刷子方向。只需顺着单像素宽的轨迹,把正方形中心对准轨迹上的像素,把方形内的像素全部用线条颜色填充。 * 本节讨论如何用一种颜色或图案来填充一个二维区域。填充的区域可以是多边形的,也可以是圆或椭圆的,还可以是带孔的。区域填充可以分两步进行,第一步先确定需要填充哪些像素。第二步确定用什么颜色值或图案来填充。 多边形区域填充的一种常用方法是按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的像素,即完成填充工作。 A B C D P1 P2 P3 P4
您可能关注的文档
最近下载
- 护理综合技能(第2版)PPT课件 基本护理技术-注射技术.pptx
- 高中数学:习题2:幂函数.doc
- 电力线路迁改工程施工组织设计(完整常用版).doc VIP
- 2023年江西省初中学业水平考试英语真题及答案.doc VIP
- 初中数学:鲁教版(五四制)数学【全八册】知识点总结 .pdf VIP
- LY_T 3314-2022 皂荚培育技术规程.docx
- 钻孔简易水文地质观测规程 .doc VIP
- 2025H1全球短剧营销白皮书.pdf VIP
- 阳光财产保险股份有限公司雇主责任保险条款2011版.pdf VIP
- 神经重症患者感染诊治_美国临床神经医学手册(2017-2018)与中国专家共识(2017)的对比与解读.pdf VIP
文档评论(0)