← CG教材一覧へ

DDA直線アルゴリズム

x, y を少しずつ増やし、各ステップで四捨五入してピクセルを選ぶ仕組みを確認します。

始点 S と終点 G はドラッグできます。緑が確定済み、橙が現在です。 マス内の数字は「丸める前の実数座標」です。

計算の履歴
ixyround(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では小数を使って直線上を進み、最後に整数ピクセルへ丸める点です。