我当时正在研究一本解释DDA算法的书,被困在一个点( .According )上,所以这里的点应该是(4,6)在(4,5)的位置,是不是我把书中我觉得不正确的点圈在下面的图片上,所以我把它看错了,还是书在这里印错了?

发布于 2013-06-09 10:21:13
为了在离散平面(x,y),x,y整数上画一条连续线,该算法基于直线的斜率,使x或y成为“载体”(总是增加一个),而另一个坐标则被插值。原因是:
x+0.1、x+0.2等)文档似乎是此PDF,在这里您可以看到连续的线,并不总是在它所穿过的像素的中心。由于该算法,一个点将有一个近邻,无论是在x+1还是y+1,取决于斜率(插值的坐标可能在一行中是相同的四舍五入的两倍(或更多)。例如,如果y是插值的,你可以有(10,20),(11,20),(12,21)有两次y=20)。
仅考虑四分之一0,90度,这条线从坐标(0,0)开始。如果直线斜率低于45度,则最好将x作为“载体”(增量为1),y为插值。示例
+++
+++
+++在这里,x总是以1递增,但y有时取的值与以前的x相同(例如,对于x=0,x=1,x=2,我们有相同的y)
回到四舍五入
在同一份文件中,它是第47页。
为了在屏幕上绘制一个像素,我们需要将坐标舍入到最近的整数。
这通常是在做插值时的情况。最好取最近的整数。这意味着,通常
>= .5 (例如。4.71 => 5)< .5 (例如5.42 => 5),则只取整数部分。因此:
在这种情况下,(4, 38/7) ~= (4, 5.43),5.43被舍入到最近的整数,即5而不是6。
https://stackoverflow.com/questions/17008245
复制相似问题