アプリ版:「スタンプのみでお礼する」機能のリリースについて

座標A,B,C,Dからなる四角形を中心Dを基準にして、
θ角度を回転させたあとの各点の座標(X,Y)が知りたいのですが、
計算式がまったく分かりません。

昔、勉強したのかもしれませんが文系だったのでさっぱりです。

どなたか教えてください。
お願いいたします。

A--------D
|           |
|     D     |
|           |
B--------C

A 回答 (3件)

こんにちは。



高校数学で「回転行列」というのを習います。
http://ja.wikipedia.org/wiki/%E5%9B%9E%E8%BB%A2% …

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
というふうに無変換になるので、つじつまが合います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/29 10:23

四角形は 長方形と考えていいのでしょうか。


もしそうなら次のように考えられますが。

対角線の交点を原点とし、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についても同様。

ざっとこのように考えましたが、如何でしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/29 10:22

>座標A,B,C,Dからなる四角形を中心Dを基準にして、



意味不明です。

Dは頂点ですか中心ですか。

この回答への補足

すみません。

中心点Eの間違いです

A--------D
|            |
|   E        |
|            |
B--------C

補足日時:2011/03/14 23:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています