趣文网 > 作文大全

关于上一篇文章中提到的家庭作业

2020-11-17 20:40:01
相关推荐

今天来回答在上一篇文章中提到的”家庭作业”。

关于iMin的计算

iMin表示绘制区域的最小索引,所以简单的使用简单的截断除法就可以计算出来。

关于iMax的计算

关于iMax的计算,可以有两种不同的方法。

第一种方法

计算第一个不可见行(注意这里的”不”字)的向上进位值(Roundup)。还记得吗?一个矩形的坐标定义中,是不包含终结点(endpoint)的,所以,rcPaint.bottom实际上位于绘制矩形之外的第一个不可见行。因为我们需要得到第一个完全位于绘制矩形之外的行索引,所以这里使用了向上进位。

第二种方法

在第二种方法中,我们使用了看上去完全等效的算法。

在第一步中,以下公式可以得到最后一个可见行的索引,通过添加一个像素单位,我们得到了第一个不可见行的索引。

在上面两个方法中,我们都考虑到了计算结果超出总行数的可能性,所以,通过比较算法(min/max)来确保我们不会绘制一个实际上不存在的东西。

对于下一个问题

虽然以上两个计算公式看起来是等效的,但是,当rcPaint.bottom小于等于0时,公式中的整数除法将会得到0,这将会导致错误的计算结果(iMax将会计算得到1,而不是预期中的0)。当整数除法得到负无穷时,计算公式才是正确的。

为什么这又不是一个大问题

如果使用了错误的公式,只是会导致我们绘制了不需要绘制的行,这在我们的示例中,不是一个大问题,因为绘制过程会非常快,但是如果绘制一个条目需要耗时很久,则避免绘制不需要绘制的条目,将会很大程度上提升程序性能。

我们将在第4章节演示使用错误的公式带来的效果:它将绘制出比较奇怪的东西。拭目以待!

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

有排比段的作文 秋天写景作文300字 丢手绢作文三年级 在我眼中你最美作文800字 诗意的生活作文600字 作文我的文具盒 我的精神小屋作文800字 作文春 勇气话题作文 我的理想作文800字作文 摔跤以后作文 爱作文100字 告别朋友作文600字初中 敬佩的人作文500字 作文老师 父亲的爱作文结尾 GRE作文题目 诗歌朗诵作文 全国作文新奥赛官网 过端午节作文二年级 环卫工人作文400 精彩的表演作文 以环境为主题的作文 关于相信自己的作文 比的作文600字 鱼的世界作文 人物小传作文600字 新生入学感受作文 我爱我作文800字 我的高中英语作文