- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
        查看更多 
         
       
 
      
        习题4. 在本章第一节说明Bresenham算法如何选择下一个像素点位置的图2-3中,其实是假定了在当前选择的点是(x,y)时,真正直线与横坐标为x+1的直线的交点是在y和y+1之间。如果不是这样,而是下面两种情况: 在y到y-1之间。例如从(0,0)到(7,2)的直线,在点(2,1)处向后。 在y+1到y+2之间。例如从(0,0)到(7,5)的直线,在点(2,1)处向后。 试说明为什么对所列两种情况算法仍能正确地工作。 解答: 在给出两种情况下,Bresenham算法仍然能够正确工作的原因是判别式d保证了在这两种总情况下,仍然能正确的取到最接近真正直线的像素点。 在Bresenham算法中,按照判别式d的正负来决定选择哪一点作为下一个像素点,判别式d如下计算: d = d1 – d2。 其中 d1 = yp – y, d2= y + 1 – yp, y是当前选中点(x,y)的纵坐标,yp是真正直线与横坐标为x+1的直线的交点的纵坐标。 当d0时,取上点,即(x+1,y+1)作为下一个像素点,当d0时,取下点,即(x+1,y)作为下一个像素点。 这里还要说明一下,因为此处是按照书上给出的Bresenham算法来进行像素选择的,所以实际上有一个先决条件,即直线的斜率处于0和1之间。只要保证斜率满足条件,在当前选择的点是(x,y)时,真正直线与横坐标为x+1的直线的交点即使不在y和y+1之间,书上所给的Bresenham都可以正确工作。题目所给两种情况中的直线斜率都满足算法的先决条件。 在第(1)种情况下,如下图所示: 当前选择点为(x,y),下一点实际为P点,该点处于(x+1,y-1)和(x+1,y)两点之间,实际应取(x+1,y)点作为下一个像素点。现在来看一下为什么一定会取(x+1,y)点作为下一个像素点,而不是取(x+1,y-1)点作为下一个像素点。设Q点为选择(x,y)点作为显示像素点时实际的直线上的点,根据Bresenham算法的特点Q点的纵坐标yq一定满足y-0,5≤yq≤y+0.5,否则不会选择(x,y)点作为显示像素点,因为P点的纵坐标处于y和y-1之间,所以y-0.5≤yq≤y,否则该直线斜率将不满足条件(直线斜率将小于0)。当y-0,5≤yq≤y时,则一定有y-0,5≤yp≤y,因为如果ypy-0.5,则P点的纵坐标会比Q点纵坐标更小,这时直线的斜率就不满足先决条件了(直线斜率将小于0)。所以因为直线斜率先决条件的限制,当真正直线与横坐标为x+1的直线的交点是在y和y-1之间时,该实际交点一定更靠近(x+1,y)点,所以一定会取(x+1,y)点作为下一个像素点。再来看一下按照Bresenham算法计算会取哪一点。从图可知,因为P点纵坐标yp在y-1和y之间,所以有ypy,ypy+1,所以有d1=yp-y0,d2=y+1-yp0,由此可得d=d1-d20,所以要取下点(x+1,y)作为下一个像素点,跟实际应取的点是一致的,所以在这种情况下Bresenham算法仍然可以正确工作。 在第(2)种情况下,如下图所示: 当前选择点为(x,y),下一点实际为P点,该点处于(x+1,y+1)和(x+1,y+2)两点之间,实际应取(x+1,y+1)点作为下一个像素点。现在来看一下为什么一定会取(x+1,y+1)点作为下一个像素点,而不是取(x+1,y+2)点作为下一个像素点。设Q点为选择(x,y)点作为显示像素点时实际的直线上的点,根据Bresenham算法的特点Q点的纵坐标yq一定满足y-0,5≤yq≤y+0.5,否则不会选择(x,y)点作为显示像素点,因为P点的纵坐标处于y+1和y+2之间,所以y≤yq≤y+0.5,否则该直线斜率将不满足条件(直线斜率将大于1,因已知ypy+1,而如果yqy,那么yp-yq1,所以直线斜率大于1)。当y≤yq≤y+0.5时,则一定有y+1≤yp≤y+1+0.5,因为如果ypy+1+0.5,同时又有yq≤y+0.5,则yp-yq1,这时直线的斜率大于1,不满足先决条件。所以因为直线斜率先决条件的限制,当真正直线与横坐标为x+1的直线的交点是在y+1和y+2之间时,该实际交点一定更靠近(x+1,y+1)点,所以一定会取(x+1,y+1)点作为下一个像素点。再来看一下按照Bresenham算法计算会取哪一点。从图可知,因为P点纵坐标yp在y+1和y+2之间,所以有ypy,ypy+1,所以有d1=yp-y0,d2=y+1-yp0,由此可得d=d1-d20,所以要取上点(x+1,y+1)作为下一个像素点,跟实际应取的点是一致的,所以在这种情况下Bresenham算法仍然可以正确工作。 综上所述,虽然书中所说算法在当前选择的点是(x,y)时,假定了真正直线与横坐标为x+1的直线的交点是在y和y+1之
       
 
       有哪些信誉好的足球投注网站
有哪些信誉好的足球投注网站 
  
 
       
       
      
文档评论(0)