あまつぶ

3.25 11:30 【回転と反転】

 選抜。今回から試合の途中で校歌が流れるようになったらしい。どんなもんなんかねえ。1回戦で負けてしまったら歌えないからってのはわかるんだけど……。
 とりあえず、浜田高校、がんばれ。

 そうだ。明日帰省するのでしばらく更新できない。更新できない間に100000アクセス達成という可能性があってちょっと恐いんだけど、大丈夫かなぁ(^^;; せっかくだから記念ページでも作ろうかなと思っているからもうちょっと待ってほしい(笑)。ちょっとたってからでも別に構わないんだけどできれば早いうちにやりたいし。とりあえずはカウンタの桁を増やしておくのを忘れないようにしないと。

 もう完成版までに機能を追加しないつもりだったQT-Qだけど、追加してしまった。PictureViewerにある時計回り、反時計回りの回転と水平、垂直の反転。
 FDecompressImage(Fの意味のことをQuickTimeのページで見たような気がするけどなんだったか忘れてしまった)を使うとイメージの回転、変型などを行うことができるらしいので早速やってみたわけ。こういう機能があることは知っていたんだけどMatrixRecordってのがややこしそうで……。
 MatrixRecord。名前からもわかるとおり、行列だ。この行列を利用して画像を変型させるらしい。内容は3*3の行列らしい。回転と拡大縮小だけなら2*2で実現できるはずだが、なんでこんなに多いんだろ。と、IMを読んでみたらちゃんと解説があって(そりゃあるわな)移動もできるようになっているらしい。それでも2*3しか使わないから、残りの3つは0,0,1を入れると。それなら最初から2*3の行列を使えばいいような気がするけど、将来拡張できるようにするということなのかな?
 行列の値の設定は自分でやってもいいのだけどいくつか用意されている関数があるからそれらを使うのが楽だ。回転ならRotateMatrix。回転角度と回転中心を指定すればいい(その前にSetIdentityMatrixを呼んでおかないとまずいかもしれないけど)。ウィンドウごと回転させないといけないから回転中心の指定がちょっとめんどくさかったが、自分で回転ルーチンを書くのにくらべれば楽だ。スクリプト処理や記録のためのルーチンも同時に作ってちょっと実験したらあっさりと完成。ふ〜。
 反転のほうも同じようにやればできるはずだが、こちらは行列を設定してくれるルーチンがないのかな。そんなわけで自分で行列に値を入れてやってみた。しょうもないバグを作って無駄な苦労をしたが、なんとか完成。今考えたらScaleMatrixで「-1倍」にしてやれば反転できそうな気がする。んー、どうかな。
 Fixedは扱いがめんどくさいなんてことを前に書いたような気がするけど、<FixMath.h>にいろいろ関数が定義されていた。FixRatioを使えば割り算の結果をFixed型にしてくれるし、Fixとdoubleの変換をしてくれる関数もちゃんとあるみたい。これからは使うようにしよう。

 5回表を終わって5-1。まだわからないかな。

to March 24, 1999 ↑ to March index → to March 31, 1999