ブレゼンハムの浮動小数点アルゴリズムには、私を苛立たせる何かがあります。
アルゴリズムは以下のとおりです。
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つ減らす必要があるのはなぜですか?再調整のためにこれを行うことを読みました!それはどのように私たちを助けることができますか?