- ベストアンサー
任意の地点からの回転座標の求め方
座標A,B,C,Dからなる四角形を中心Dを基準にして、 θ角度を回転させたあとの各点の座標(X,Y)が知りたいのですが、 計算式がまったく分かりません。 昔、勉強したのかもしれませんが文系だったのでさっぱりです。 どなたか教えてください。 お願いいたします。 A--------D | | | D | | | B--------C
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 高校数学で「回転行列」というのを習います。 http://ja.wikipedia.org/wiki/%E5%9B%9E%E8%BB%A2%E8%A1%8C%E5%88%97 Aの座標を(A、a)、Eの座標を(E,e)と置きます。 まず、Eの座標が(0,0)になるように平行移動します。 すると、Aの座標は、(A-E,a-e)になります。 この座標の左から回転行列を掛けます。 すると、回転後の座標(X,Y)は、 X = (A-E)cosθ - (a-e)sinθ Y = (A-E)sinθ + (a-e)cosθ 仕上げに逆平行移動をすると、求める座標(A’,a’)となります。 A’= X+E = (A-E)cosθ - (a-e)sinθ + E a’= Y+e = (A-E)sinθ + (a-e)cosθ + e 試しに θ=0 としてみると、 A’= = (A-E)×1 - (a-e)×0 + E = A a’= = (A-E)×0 + (a-e)×1 + e = a というふうに無変換になるので、つじつまが合います。
その他の回答 (2)
- puusannya
- ベストアンサー率41% (59/142)
四角形は 長方形と考えていいのでしょうか。 もしそうなら次のように考えられますが。 対角線の交点を原点とし、ADがx軸に平行になるように長方形をおきます。 Dの座標を(a,b)とし、ODとx軸のなす角をαとします。 ODの長さをlとすると、sinα=b/l、cosα=a/l さらに、点Dを原点を中心に正方向にθだけ回転させて点をE、 点Eの座標を(x、y)、また、点Eからx軸に垂線を引きx軸との交点をFとします。 ∠EOF=θ+α ですから sin(θ+α)=y/l、cos(θ+α)=x/l です。 加法定理より sin(θ+α)=sinθcosα+cosθsinα=sinθ(a/l)+cosθ(b/l)=y/l だから y=a・sinθ+b・cosθ cos(θ+α)=cosθcosαーsinθsinα=cosθ(a/l)+sinθ(b/l)=x/l だから x=a・cosθ+b・sinθcosθ 点A,B,Cについても同様。 ざっとこのように考えましたが、如何でしょうか。
お礼
丁寧に教えていただいてありがとうございます! 無事に解決できました。 お礼が非常に遅れてしまい申し訳ありませんでした。
- spring135
- ベストアンサー率44% (1487/3332)
>座標A,B,C,Dからなる四角形を中心Dを基準にして、 意味不明です。 Dは頂点ですか中心ですか。
補足
すみません。 中心点Eの間違いです A--------D | | | E | | | B--------C
お礼
丁寧に教えていただいてありがとうございます! 無事に解決できました。 お礼が非常に遅れてしまい申し訳ありませんでした。