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
コメント