\r\n\r\n
DDAとBresenhamのアルゴリズム
DDAやBresenhamのアルゴリズムは、コンピュータグラフィックスを勉強していると必ず出てくる言葉です。この2つの言葉の違いを説明する前に、DDAとは何か、Bresenhamのアルゴリズムとは何かについて見てみましょう。コンピュータの発明で簡単になったことのひとつに、微分方程式の解法がある。初期には機械式の差分分析装置が使われていたが、これは遅くて誤差も大きかった。これに対し、DDAまたはデジタル差分分析装置は、デジタルフォーム分析装置の応用で、正確で高速な分析が可能である。ディファレンシャルアナライザーを使って2点間に直線を引き、画面上にn個の辺を持つ線または多角形を見ることができる。2点間や画素点間の距離は、ソフトウェア上で始点と終点の座標を指定する微分方程式で記述される。DDAとBresenhamのアルゴリズムで実現可能です。
DDAとは?
DDAは、直線、三角形、多角形などを描くのに使われる。DDAは、直線に沿って一定間隔で一方の座標を整数として解析し、もう一方の座標は直線に最も近い整数に丸める。したがって、行が進むにつれて、最初の整数の座標をスキャンし、2番目の整数を最も近い整数に丸めることになります。したがって、DDAを使ってプロットしたx座標の線はx0からx1になりますが、y座標の場合はy=ax+bとなり、関数をプロットする場合はFn(x、yを切り上げたもの)になります。
ブレーゼンハムのアルゴリズムとは?
Bresenhamアルゴリズムは1962年にJ.E.Bresenhamによって提案され、DDAアルゴリズムよりも高い精度と効率性を実現しています。座標をスキャンしますが、丸めずに加減算でインクリメント値を考慮するので、円や曲線の描画に利用できます。したがって、2点xとyの間に直線を引く場合、次の座標は(xa+1, ya)、(xa+1, ya+1)となり、aは次の座標の増分値、これらの2つの座標の差は、それらがなす方程式を引くか足すかして計算することになります。
DDAとBresenhamのアルゴリズムの違い -DDAは浮動小数点を使用し、Bresenhamのアルゴリズムは固定小数点を使用します。-DDAは座標を最も近い整数に丸めるが、Bresenhamアルゴリズムはそうしない。-ブレーゼンハムのアルゴリズムはDDAより正確で効率的です。-DDAは方程式の掛け算と割り算を使うが、ブレセナムのアルゴリズムは引き算と足し算しか使わない。 |