突然の数学記事、内容的に IA とかかな。
実はImageMagickの回転処理がちょっと変な感じだったのでその対応です。
convert 黒四角 -rotate degree 赤四角
のように変形すると画像全体のサイズをたもちつつ回転処理が行われるためサイズが縮小されます。
黒四角のサイズのまま回転させたいため面積比を求めます。
まず次のように x, y, thetaとする。
ここで
- y cos θ = 1 – x
- y sin θ = x
から
赤四角形の辺の長さは 1 / (sinθ + cosθ) です。
ImageMagickの回転角は度(degree)ですがMathクラスではラジアン(rad)を使うので、 (degree%90) * Math.PI / 180
で変換しておきます。
回転した画像の辺の長さを 1/y にすれば四角形自体の大きさが変わらなくなります。
初期設定状態:画像の大きさは固定で、四角形の大きさが変化します。
今回の対応:画像の大きさを変化させて四角形の大きさが変わらなくなっています。
所感
久々に三角関数触ると手が震えてくる。高校生すごいな。
今回は普通に計算したけどオプションとか探せば多分ある気もする。
最近はちょっと計算するより便利なものを探す方が早い気がするなぁ。