DDA直線アルゴリズム
x, y を少しずつ増やし、各ステップで四捨五入してピクセルを選ぶ仕組みを確認します。
始点 S と終点 G はドラッグできます。緑が確定済み、橙が現在です。 マス内の数字は「丸める前の実数座標」です。
計算の履歴
| i | x | y | round(x) | round(y) | 描画ピクセル |
|---|
DDAの考え方
まず dx = x1 - x0、dy = y1 - y0 を求め、 steps = max(|dx|, |dy|) とします。 その後、xIncrement = dx / steps、 yIncrement = dy / steps を求めます。 x と y を毎回この量だけ増やし、round(x), round(y) のピクセルを描画します。
ブレゼンハム法との大きな違いは、DDAでは小数を使って直線上を進み、最後に整数ピクセルへ丸める点です。