算法原理P-yxP-y-x.PPTVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法原理P-yxP-y-x

Wu反走样算法 因为Wu反走样算法是从前景色过渡到背景色,彩色直线段的反走样需要考虑背景色的影响。设直线段的前景色(foreground color)为cf,背景色(background color)为cb。彩色直线段的反走样是从前景色变化到背景色,出现模糊边界。假定直线的斜率为0≤k≤1,取ei为Fi与Pd的距离,则像素Pd(xi+1,yi),颜色为cd =(cb-cf)*ei+rf,像素Pu(xi+1,yi+1),颜色为cu=(cb-cf)*(1-ei)+rf。 绘制光滑过渡的彩色直线段时,需要使用公式(3-28)进行前景色线性插值 c=(1-t)c0+tc1 (3-28) 式中,c为颜色渐变直线段上任一点的颜色;c0为直线段起点的颜色;c1为直线段终点的颜色。从红色光滑过渡为蓝色的彩色直线段反走样效果如图3-28所示。 3.5.4 彩色直线段的反走样 图3-28 彩色直线段的反走样 彩色反走样直线(白色背景) 彩色反走样直线(黑色背景) 直线、圆和椭圆作为二维场景中的基本图形,其生成算法的优劣对整个图形系统的效率至关重要。直线段的扫描转换是计算机图形学中最基本的算法。中点Bresenham 算法避免了复杂运算,使用了增量算法,使单点基本图形生成算法已无优化的余地,获得了广泛的应用。走样是光栅扫描显示器的固有属性,只能减轻,不可避免,如何设计直线的反走样算法是计算机图形学的前沿研究课题。在许多计算机图形学教材中,Bresenham算法都采用了整数算法。现有的研究已经证明:端点采用整数坐标没有什么益处,因为现在的CPU可以按照与处理整数同样的速度处理浮点数。因此本教材讲解的中点Bresenham算法采用了浮点数运算并且方便地解决了直线的反走样问题。 3.6 本章小结 习题 3 计算起点坐标为(0,0),终点坐标(12,9)直线的中点Bresenham算法的每一步坐标值以及中点偏差判别式d的值,填入表3-1中,并用黑色绘制图3-29中的直线段的扫描转换像素。 图3-29 像素点阵 表3-1 x,y和d的值 x y d x y d 0 7 1 8 2 9 3 10 4 11 5 12 6 2.给定直线的起点坐标为P0(x0,y0)、终点坐标为P1(x1,y1),容易计算出直线的斜率k。假设0≤k≤1且x0<x1,则x方向为主位移方向,绘制直线的递推公式为: 这称为数值微分法(Digital Differential Analyzer,DDA),请使用MFC编程实现DDA算法并在屏幕上输出直线段的斜率。 3.将中点Bresenham算法推广到绘制任意斜率的直线段。使用对话框输入直线的起点和终点坐标,试以屏幕中心为二维坐标系原点,绘制任意斜率的直线段。要求编制CLine类,成员函数为MoveTo()和LineTo()。对边界像素的处理原则是“起点闭区间、终点开区间”,即要求所绘直线达到VC++的MoveTo()和LineTo()函数的绘制效果。 3.使用对话框输入直线段的起点和终点坐标,以屏幕中心为二维坐标系原点,绘制恒定颜色的任意斜率的反走样直线段。 5.以屏幕客户区中心为二维坐标系原点,使用距离加权反走样算法绘制反走样圆。 6.以屏幕客户区中心为二维坐标系原点,使用距离加权反走样算法绘制反走样椭圆。 7. *在屏幕上绘制40×30的虚拟网格(模拟屏幕纵横比为4:3),每个网格为边长为20个像素的正方形。设定虚拟网格坐标系的原点为左上角第一个网格中心,虚拟网格坐标系的x轴水平向右,y轴垂直向下。调用对话框输入直线段的起点坐标和终点坐标,请参考0≤k≤1的直线中点Bresenham算法,使用黑色填充每个代表像素的虚拟网格,实现直线的像素级绘制。虚拟网格如图3-30所示,绘制结果如图3-31所示。 图3-30 屏幕网格划分 图3-31 直线的像素级绘制 8.使用对话框输入直线的起点和终点坐标,以屏幕中心为二维坐标系原点,给定直线的起点颜色(如红色),终点颜色(如蓝色)。请使用中点Bresenham算法绘制任意斜率的颜色渐变直线,如图3-32所示。 图3-32 颜色渐变直线效果图 9 . *图3-33(a)和(b)的左侧为指针走样的时钟,右侧为指针反走样的时钟。使用GetCurrentTime()函数读取系统时间,对时钟指针进行反走样处理,请绘制白色表盘、黑色指针的反走样时钟,如图3-33(a)所示。请绘制黑色表盘、白色指针的反走样时钟,效果如图3-33(b)所示。 (a)白色表盘黑色指针的时钟 (b)黑色表盘白色指针的时钟 图3-33 基于背景色的指针走样与反走样时钟 * 圆的起点为P

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档