• ベストアンサー

高さh、幅wの長方形a,b,c,dがあるとします。また長方形の中心点を

高さh、幅wの長方形a,b,c,dがあるとします。また長方形の中心点をoとします。 a ーーーーw ーーーー b |          | |          | |     o      h |          | |          | c ーーーーーーーーー d この長方形a,b,c,dのcを中心にn度回転させます。回転後の長方形の中心点をo2とします。 この点o2と元の中心点oとの座標の差が知りたいです。 別の表現をすると、点o2を点oに移動させる事により、oを中心に回転した結果と同じにしたいです。 移動させる座標xとyを式で求めるにはどうしたら良いですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

cを原点、cdをx軸、caをy軸とすると、 oの座標は自明で、(Xo, Yo) = (w/2, h/2) o2は、oを原点cを中心にn度回転する座標変換なので、 Xo2 = Xo * cos(n度) - Yo * sin(n度) Yo2 = Xo * sin(n度) + Yo * cos(n度) > この点o2と元の中心点oとの座標の差が知りたいです。 > 移動させる座標xとyを式で求めるにはどうしたら良いですか? どっちを基準にするのか?で符号が変わると思いますが、 (x, y) = (Xo- Xo2, Yo - Yo2) とか。 面倒なので展開しませんが。

kingfruits
質問者

お礼

neKo_deuxさん、ご回答有難うございました。

その他の回答 (1)

  • OXY23
  • ベストアンサー率36% (27/74)
回答No.2

こんにちは これって、画像処理のはなしですか?多分数学のテストなどではあまり無いような気がします。 画像処理では良くみますけど・・・ 勝手にですが画像処理として説明させていただきますが、その場合アフィン変換などを参考に調べるといいですよ。 最後に少し思ったのですが、始めから点oを中心に回転させるのではだめなんですか?

kingfruits
質問者

補足

OXY23さんご回答有難うございます。 >これって、画像処理のはなしですか? お察しの通りです。 >・・・始めから点oを中心に回転・・・ もちろん、私もそう考えましたよ。でも回転の中心点を指定する方法が見つけられなかったもので、 因にobjective-cです。

関連するQ&A