ページ

2008年8月8日金曜日

SimpleCap (37) TrackWindow枠線の改良

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

枠線がちょっとしょぼいので手を入れることにする。

こんな感じ。


拡大。


単に枠を表示するだけではわかりづらいので透明度を変えてゆっくりと点滅させている。

点滅の周期には sin関数を使ってみた。

1周期 6秒で変化する。

ただなんとなくしっくりこない。感覚的には「溜め」が欲しい。
そこでしきい値をもうけて「溜め」を作り出すことにした。イメージはこんな感じ。


コードはこんな感じ。

#define PHASE_SEC 30
int f = counter % PHASE_SEC;
CGFloat alpha = 0.5 - fabs(sinf((float)f/PHASE_SEC*M_PI))/2.0;
if (alpha > 0.2) {
alpha = 0.2;
}

counter は 0.1秒毎にインクリメントされる。alphaを枠線の透明度として使う。