Bresenham的浮点算法中存在一些让我恼火的问题。Bresenham Lines Drawing Alogrithm
该算法如下:
void line(x0, x1, y0, y1)
{
int deltax = x1 - x0;
int deltay = y1 - y0;
float error = 0;
float deltaerr = Math.abs((float)deltay/(float)deltax);
int y = y0
for(int x=x0;x<=x1;x++)
{
SetPixel(x,y)
error = error + deltaerr
if (error >= 0.5)
{
y = y + 1
error = error - 1.0
}
}
}
假设我们要绘制Y = 0.6X。 因此,在x = 0的第一步中:错误将被设置为0.6,我们将遇到if语句和y 将增加。错误将被设置为-0.4。 -0.4如何在下一步中帮助我们?
所以我的问题是这行代码:
error = error - 1.0
为什么我们应该以1死亡的错误?我读过,因为重新调整,我们这样做!它如何帮助我们?
你有没有看过[真正的算法](http://en.wikipedia.org/wiki/Bresenham's_line_algorithm#Algorithm)?因为你所展示的只是部分正确 –
,所以为什么维基百科把它放在页面的顶部? –