gline2 は加算するアルゴリズムではない(直線の方程式から直線求める)ので誤差の心配は不要です。 処理速度については draw 系だと gline の処理速度が効いてくるけど paint 系だから操作する上での遅延が無ければ問題ないでしょう。 wikipedia の最適化の項はいきなり整数で処理するアルゴリズムになってて、ギャップが大きいですね。 基本的には「被除数を除数で割ったら Q あまり R になる」という除算を、 「非除数をから除数を引き続けると、引けなくなる(負になる)のが Q 回ある」という計算に置き換えています。 (引けなくなったら y 座標を一増やし、余り(error)を deltax 増やすみたいな) error の初期値を deltax / 2 としてるのが座標を 0.5 オフセットするのに相当します。 これを 0 とするとプチコンみたいな gline になります。