• ベストアンサー

長方形を回転させたときの中心からの距離

こんばんは 長方形を回転させたときの中心からX方向の距離とY方向の距離の求め方を教えていただきたいです。 長方形の横幅X,縦幅Y,回転させた角度θを使って求めるとしたらどのような式になるでしょうか?

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

  • ベストアンサー
  • info222_
  • ベストアンサー率61% (1053/1707)
回答No.5

No.2です。 ANo2に書いていただいた補足コメントと原点中心の回転の場合について >>最初の長方形が置かれた4つの角の座標 >左上から時計回りに(X/2,Y/2)(-X/2,Y/2)(-X/2,-Y/2)(X/2,-Y/2)ですね これは、頂点の座標が「右上から反時計回りに」並んでいます。「左上から時計回りに」と対応していませんね。 ちゃんと正しく補足して頂かないと、正しい解答ができません。 これについて再度正しく訂正の補足コメントいただけませんか? ・「左上から時計回りに」だと  (-X/2,Y/2),(X/2,Y/2),(X/2,-Y/2),(-X/2,-Y/2) ・「右上から反時計回りに」だと  (X/2,Y/2),(-X/2,Y/2),(-X/2,-Y/2),(X/2,-Y/2) となりますが、前文と座標の並びのどちらかを 訂正願えませんか? >>これは反時計回りに回転した角度ですか、それとも時計回りに回転した角度ですか? >時計回りでお願いします そうなら、原点を中心に、時計回りにθ回転でいいですね。 たとえば、長方形の四個の頂点の座標を左上から反時計回りに、順に(-X/2,Y/2),(-X/2,-Y/2),(X/2,-Y/2),(X/2,Y/2)である場合は 原点中心の時計回りにθ回転する回転行列は M=[cosθ,sinθ;-sinθ,cosθ] となります。 回転移動前の4個の頂点座標を (-X/2,Y/2),(-X/2,-Y/2),(X/2,-Y/2),(X/2,Y/2) とすると 頂点の行列表現は X1:[-X/2,-X/2,X/2,X/2;Y/2,-Y/2,-Y/2,Y/2] となります。 原点中心に時計回りにθ回転した長方形の4個の頂点の行列表現は X2:=MX1 =(1/2) [-Xcosθ+Ysinθ,-Xcosθ-Ysinθ,Xcosθ-Ysinθ,Xcosθ+Ysinθ; Xsinθ+Ycosθ,Xsinθ-Ycosθ,-Xsinθ-Ycosθ,-Xsinθ+Ycosθ] これを各頂点について回転移動前と後の座標で書くと (-X/2,Y/2)→((-Xcosθ+Ysinθ)/2,(Xsinθ+Ycosθ)/2), (-X/2,-Y/2)→((-Xcosθ-Ysinθ)/2,(Xsinθ-Ycosθ)/2), (X/2,-Y/2)→,((Xcosθ-Ysinθ)/2,(-Xsinθ-Ycosθ)/2), (X/2,Y/2)→((Xcosθ+Ysinθ)/2,(-Xsinθ+Ycosθ)/2). となります。

takasan_2525
質問者

お礼

わざわざ過程まで乗せていただきありがとうございます。 求めたいのは中心からの距離だったので主旨とは少し離れてはいますが、この方法を使えば求められるので彼をBAにさせていただきます。

その他の回答 (4)

  • trytobe
  • ベストアンサー率36% (3457/9591)
回答No.4

まったく図も無く、「傾いた長方形の一番左端と一番右端を結ぶと長方形の対角線だから、そこから一番左端から一番右端までの占有幅が求まる、」とかいう説明も伝わっていないのか、なにが不満なのかが十分補足されていないので、 丸投げされているものに対して、今のところ言えるのは、 「時計回り」に角度θ だけ長方形を回転させたときの、長方形の対角線がどれだけの幅とどれだけの高さを占めるか、は、 横方向には、( X |cos(-θ)| + Y |sin(-θ)| ) 縦方向には、( Y |cos(-θ)| + X |sin(-θ)| ) 長方形の角が、中心に対して横方向と縦方向に離れているか、は、その半分で、 横方向には、( X |cos(-θ)| + Y |sin(-θ)| ) /2 縦方向には、( Y |cos(-θ)| + X |sin(-θ)| ) /2 でしかないので、具体的な X, Y, θ で、「長方形を回転させたときの中心からX方向の距離とY方向の距離」の定義とともに、これらの式ではなぜ整合しないのか、という図解をしないと、「何を求めて欲しいのか」から皆さんが疑問のまま終わると思いますよ。

takasan_2525
質問者

補足

こちらの計算式が間違っていました。失礼しました。 式としては 横方向には、( X |cos(θ)| + Y |sin(θ)| ) 縦方向には、( Y |cos(θ)| + X |sin(θ)| ) でよいと思われます。 補足が欲しければ補足が欲しいと言えばいいと思いますよ そうすればいまさらになって補足が欲しかったのにー とぐちぐち小言を吐かなくても良くなりますから info222_さんを見てくださいよ 欲しい情報があれば自分から求めてきますよ

  • trytobe
  • ベストアンサー率36% (3457/9591)
回答No.3

じゃあ、 「時計回り」に角度θ だけ長方形を回転させたときの、長方形の対角線がどれだけの幅とどれだけの高さを占めるか、は、 横方向には、( X |cos(-θ)| + Y |sin(-θ)| ) 縦方向には、( Y |cos(-θ)| + X |sin(-θ)| ) 長方形の角が、中心に対して横方向と縦方向に離れているか、は、その半分で、 横方向には、( X |cos(-θ)| + Y |sin(-θ)| ) /2 縦方向には、( Y |cos(-θ)| + X |sin(-θ)| ) /2

takasan_2525
質問者

補足

求めたいのは長方形の対角線ではありません。 またこの式ですと対角線以上の長さが出てくる場合があります。

  • info222_
  • ベストアンサー率61% (1053/1707)
回答No.2

長方形を回転する場合の回転の中心座標と 最初の長方形が置かれた4つの角の座標 を教えてください。 >角度θ これは反時計回りに回転した角度ですか、それとも時計回りに回転した角度ですか? 補足コメントに回答願います。

takasan_2525
質問者

補足

>最初の長方形が置かれた4つの角の座標 左上から時計回りに(X/2,Y/2)(-X/2,Y/2)(-X/2,-Y/2)(X/2,-Y/2)ですね >これは反時計回りに回転した角度ですか、それとも時計回りに回転した角度ですか? 時計回りでお願いします

  • trytobe
  • ベストアンサー率36% (3457/9591)
回答No.1

反時計回りに角度θ だけ長方形を回転させたときの、長方形の対角線がどれだけの幅とどれだけの高さを占めるか、は、 横方向には、( X cosθ + Y sinθ ) 縦方向には、( Y cosθ + X sinθ ) 長方形の角が、中心に対して横方向と縦方向に離れているか、は、その半分で、 横方向には、( X cosθ + Y sinθ ) / 2 縦方向には、( Y cosθ + X sinθ ) / 2

takasan_2525
質問者

補足

これですとX=Yのとき135度で0になってしまいますね

関連するQ&A