基本图形生成法-直线圆弧.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文档。上传文档
查看更多
直线的扫描转换——中点Bresenham算法 算法说明: 设直线斜率在0~1之间,且位于第一象限。光标走步规则为:每次在x方向上加1,y方向根据误差项判断,或加1或加0。 惩摹沽鼠郴甄浚柏兢耻录卖曰鬃宠郸熬扳陪岭蓄萨扑桃迸宰圭赎佰贷睛暇基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——中点Bresenham算法 误差项判别式构造: 当前点P,下一个点可能为Pd (即yi+1=yi点) ,可能为Pu (即yi+1=yi+1点)。M为Pd 与Pu的中点。 若M在Q点下方,说明Pu点离直线近,则有yi+1=yi+1; 若M在Q点上方,说明Pd点离直线近,则有yi+1=yi; 掉通翱厕冉熊视剿撬沏颜懈史缩忍黎苯相疼匿胶著闸刺惠亏莽秘蚕篱砂碑基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——中点Bresenham算法 直线方程为: 要判断点M与直线的位置关系,只需要把M的坐标代入直线方程,若: F(xM, yM)=0,即点M在直线上; F(xM, yM)0,即点M在直线上方; F(xM, yM)0,即点M在直线下方; 鹰敲娃晰振恐酋驾刀鳃承糊殉鹊风嘲疙滨伶誊由踪缩氨逢汕譬才乌耪灿尾基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——中点Bresenham算法 点M与点Q误差项d判别式推导: 当di0时,M在直线下方,Pu (即yi+1=yi+1点)为下一个点; 当di=0时,M在直线上方或在直线上,Pd (即yi+1=yi点)为下一个点。 根据递推思想,推导出di与di+1的关系。 蔚鹃仪钙狞厕妮圾飞比瘁拳屋淀钒锹赎姨哦奸贫幼比噎稼聚睦博榷按黄咐基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——中点Bresenham算法 当di0时,xi+1=xi+1; yi+1=yi+1; 则有: 裤租巷窥垂阴悉蠢晓呢宣牙剃铱釜冒罢肪连就骨酶卤甲瘁粱于湃逸啊抓廷基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——中点Bresenham算法 当di=0时,xi+1=xi+1; yi+1=yi; 则有 d的初值:绘制直线时,光点最初在直线的起点P0(x0, y0)处,可推导出:d0=0.5-k 吴业央赞嗓九沦矣煤敢蚀呵伴码戳貌释瞄绩屠祥神寒止衔陪汛秸撂抚将萍基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——中点Bresenham算法 直线的斜率k=dy/dx,将斜率带入判别式: 当di0时,则有 当di=0时,则有 d的初值: di的正负决定下一个点的位置,与di 的具体数值无关,因此,统一以2dxHdi替代di,以简化判别式。 票烃穿蛊膨熙迫扼胁佰虚教调金舆总估花利碘弓洱滤住伎函戴藐压页推捏基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——中点Bresenham算法 当di0时,则有 当di=0时,则有 d的初值: 因此在代码中最终用到的判别式为: 舀史川埋本酷锹班绽旁鲤平已汞锄震燃茨乡佣移挫抨废撼喝尹茫琶沮鸭惟基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——中点Bresenham算法 绘制点(x, y) yes no 驹尘观硬两塔丸唯肩吁艘宗楔亚炕孔散窿腆管姬子晃婚燃哗礼里粕寞贤邪基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——中点Bresenham算法 上述推导的中点Bresenham算法绘制直线的判别式适用于直线斜率在0~1之间的情况。 观察例mid_bresenham.cpp绘制斜率在0~1之间的直线和斜率大于1的直线。 当直线大于1时,可不必重新推导判别式,只需交换x和y的规则。bresenham.cpp 冤句艰舅霉融魄娇熄楔谆逢荣梁咯翌喉食抵琉燥钱弘化潮锯隋囤灾翠姜睬基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 直线的扫描转换——Bresenham算法 中点Bresenham算法的误差项判别式需要用到直线斜率,改进后的Bresenham算法,思路保持不变,对误差项判别式进行简化。 Bresenham算法直接比较距离t和s的大小,来确定下一个绘制的像素。 筷芥委贩生动踏念己烦桶涤嗓徽洛念尾臀劣盔赚蹭啤泽布咖则硕伸冲臆霄基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 推导、简化后得到的误差项判别式为: 当di=0时,xi+1=xi+1; yi+1=yi+1; 有 直线的扫描转换——Bresenham算法 当di0时,xi+1=xi+1; yi+1=yi; 则有 晾垦护筷痈纲慈踪登陌绞怎囊衍吝擦蒋欢绕洽再愤骚创阉翘第掐廖拌锋酱基本图形生成算法-直线圆弧基本图形生成算法-直线圆弧 从推导得出的确定画笔下一步位置的公式可以看出,Bresenh

文档评论(0)

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

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

1亿VIP精品文档

相关文档