平日:朝からタバコ臭い2008年06月18日 06時46分43秒

今朝は妙なタイミングで目覚めてしまって、スリープトラッカーを使い始めてから最も寝起きが悪かった気がする。
目が覚めてしまった原因は換気のために開けてあった窓から侵入してきたタバコの煙で発生源は隣の家である。

こんなにも最低な朝となってしまったのは、やはり昨夜の PSUでレアユニット【ルミラス/カーズナイト】を手に入れてしまったせいだろう。
幸運の竹篦返しがこの程度で終わるとはとても思えなくて、物凄く気の重い朝となってしまった。

単純な 問題ほどに 見失う2008年06月18日 19時29分25秒

今日はFlashCS3で制作中のプログラムで発生した一つのバグを修正するのに丸一日というとんでもない事になってしまった。
バグの原因となったのは widthとheightというプロパティに保存されていたデータにある。
問題となった値は変数名を見て分かる通りで幅と高さを示す値が入っている。

ここまでの認識は何ら間違っていないのだけど、ここでオブジェクトの回転という操作をすると予想外の事が起きてくれる。
通常なら幅や高さが変化すると言えば、オブジェクトを拡大・縮小した時くらいだ。
ところがFlashCS3の場合はオブジェクトを回転させると不変であると思い込んでいたプロパティ widthとheightが書き換わってしまう。

こんな事になってしまう理由は widthとheightがオブジェクトの大きさを示す値ではなく、表示領域のサイズであることに由来する。
表示領域とはウィンドウ枠に平行な直線で作る四角形で、対象のオブジェクトを包み込むのに必要な最小の領域のことだ。
つまり、四角形の辺をウィンドウと平行に配置すれば表示領域とオブジェクトのサイズは一致する。
しかし、四角形を斜めにすると表示領域は過度が出っ張る分だけ広がってしまう。

この事に気が付くことができず、それ以外の原因としてマルチスレッドの同期問題などを真剣に考えてしまった。
要するに問題を難しく考えすぎて、単純な本質を見抜くことができなくなってしまっていたという話だ。
それに加えて、オブジェクトの回転で幅と高さのプロパティが変わるはずがないという思い込みがあったのが良くない。

自分の不甲斐なさに溜め息と苛立ちを感じつつ、重い足取りでの帰り道となっている。