• ベストアンサー

任意の地点からの回転座標の求め方

座標A,B,C,Dからなる四角形を中心Dを基準にして、 θ角度を回転させたあとの各点の座標(X,Y)が知りたいのですが、 計算式がまったく分かりません。 昔、勉強したのかもしれませんが文系だったのでさっぱりです。 どなたか教えてください。 お願いいたします。 A--------D |           | |     D     | |           | B--------C

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

  • ベストアンサー
  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.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 というふうに無変換になるので、つじつまが合います。

kkk311
質問者

お礼

丁寧に教えていただいてありがとうございます! 無事に解決できました。 お礼が非常に遅れてしまい申し訳ありませんでした。

その他の回答 (2)

  • puusannya
  • ベストアンサー率41% (59/142)
回答No.2

四角形は 長方形と考えていいのでしょうか。 もしそうなら次のように考えられますが。 対角線の交点を原点とし、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についても同様。 ざっとこのように考えましたが、如何でしょうか。

kkk311
質問者

お礼

丁寧に教えていただいてありがとうございます! 無事に解決できました。 お礼が非常に遅れてしまい申し訳ありませんでした。

  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.1

>座標A,B,C,Dからなる四角形を中心Dを基準にして、 意味不明です。 Dは頂点ですか中心ですか。

kkk311
質問者

補足

すみません。 中心点Eの間違いです A--------D |            | |   E        | |            | B--------C

関連するQ&A