2008年4月26日

プログレスバーの更新を必要最小限の間隔で行う

 表題のことを考えていたら、ブレゼンハム(Bresenham)の線分描画アルゴリズムが適用できそうなことに気づいた。

 以下、C言語風の擬似コード。

e=0
while ( !EOF ) {
 1行読み込み
 なにかの処理
 e+=1行の長さ*100
 if ( ファイル長 < e ) {
  プログレスバー更新
  e-=ファイル長
 }
}

 いまどき、線分描画アルゴリズムを用いて線分を描画するシチュエーションは稀だと思う。

 しかし、知っていると思わぬところで応用が利くなと思った。


 前提条件として、プログレスバー1%分が1行より大きい必要がある。が、プログレスバーを表示したいのだから、その条件は満たすだろう。

 満たさない場合は100%に到達せずに終わってしまうが、最後に100まで移動するコードを書いておけば、見た目はOKだと思われる。

Posted by rukihena at 01:00:57
トラックバックURL

このエントリーのトラックバックURL:
http://weblog.rukihena.com/mt/mt-tb.cgi/772

コメント