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)?因爲你所展示的只是部分正確 –
,所以爲什麼維基百科把它放在頁面的頂部? –