これ、ディスプレイに直線を描くときに、よく、お世話になるやつですね。 傾きが45度以内と言う制限があるので、つまり、XYの長い方でステップするというものだから、常に時間軸の方向でステップするときには、余り具合が良くありません。 固定小数点で演算して、積算のオーバーフローがうまいこと四捨五入に使えるという便利物なのですが…
やはり、固定小数点のデルタを作っておいて、これを毎回加算する方が返って演算が楽だと思います。これなら、割り込み毎に加算するだけ。0.5の補正で丸めれば、最小精度は割り込み単位です。 RJBさんのソースを見ていないのですが、指数的に値を戻した方が使いやすそうなので、そちらの計算が複雑になっているのではないでしょうか。
ganさんのおっしゃるように、等比で減衰を作るのも面白いです。この場合は、速度の速い乗算が必要。 両方とも、DDAって言っていた手法ですよね。
規模の小さいチップで作るときは、乗算/除算の有無が、モデルの実現に関わってくるので、強い制限だし、また、ソフトを書くときの楽しみにもなります。
|