プロが教えるわが家の防犯対策術!

例 三角形(a,b,c)の a を基点として回転させる計算方法

a x = 200 y = 100
b x = 1500 y = 100
c x = 1500 y = 900

難しくはないと思いますが三角関数が苦手なので教えて下さい。

A 回答 (4件)

回転する角度をθとします。

a点のxをax, yをayと書きます。以下同様。
px=bx-ax, py=by-ay
を計算し、
px' = px cosθ - py sinθ
py' = px sinθ + py cosθ
そして、
bx' = ax+px', by' = ay+py'
このbx', by'が新しいbの座標です。cも同様にして計算すればおっけー。
    • good
    • 1
この回答へのお礼

とても解かり易い回答ありがとうございました。
私が知りたかった計算式です。

学問から20年も離れますと、使っていない方式など
ほとんど忘れてしまい皆様のお力をお借りしなければなりません。
これからもよろしくお願いします。

お礼日時:2001/01/13 19:15

lible_ioさんは、虚数や、行列を知らないようですので、


中学生ぐらいの数学力だとして説明します。

基点という意味がちょっと分かりかねたんで、aを回転の中心として図形を
回転させるにはということで説明します。

aを中心に図形を回転するのに一番わかりやすいやり方は
aを原点に持ってくるように図形を平行移動します。

つまりx方向に -200、y方向に -100づつ頂点を移動します。
a x = 200 - 200 = 0 a y = 100 - 100 = 0
b x = 1500 - 200 = 1300 b y = 100 - 100 = 0
c x = 1500 - 200 = 1300 c y = 900 - 100 = 800
となります。

そして各頂点を原点を中心として点を回転する公式に当てはめます。
回転する角度を θ とした場合
a は原点にあるので回転しても移動しないので。
x = 0
y = 0
bのx,yそれぞれの座標は
x = 1300 × cos θ - 0 × sin θ
y = 13000× sin θ + 0 × cos θ

bのx,yそれぞれの座標は
x = 1300 × cos θ - 0 × sin θ
y = 13000× sin θ + 800 × cos θ

そして、回転した後の図形を、最初に平行移動をしているので
aが元の位置に戻るように x 方向に200 y 方向に 100づつ
それぞれの頂点を平行移動します。

a の座標は
x = 0 + 200 = 200
y = 100 + 100 = 100

bのx,yそれぞれの座標は
x = 1300 × cos θ - 0 × sin θ + 200
y = 13000× sin θ + 0 × cos θ + 100

bのx,yそれぞれの座標は
x = 1300 × cos θ - 0 × sin θ + 200
y = 13000× sin θ + 800 × cos θ + 100

となり、これで図形abc を頂点a を中心に θ だけ回転した図形が
出来あがります。
    • good
    • 0
この回答へのお礼

回答有り難うございました。
学問から20年も離れますと、使っていない方式など
ほとんど忘れてしまい皆様のお力をお借りしなければなりません。
これからもよろしくお願いします。

お礼日時:2001/01/13 19:16

複素数を利用する方法。



i*i = -1
a(200+100i)
b(1500+100i)
c(1500+900i)
回転する角度θ

b' = (b-a)(cosθ+isinθ)+a
c' = (c-a)(cosθ+isinθ)+a

(b-a)で回転中心を原点に移動、(cosθ+isinθ)をかけて回転、最後に+aで回転中心を元の位置に戻す。
あとは計算して実部と虚部にわけてやると、実部がx座標、虚部がy座標になります。
(結局下記の方々と言ってることは変わって無い・・・)

この回答への補足

iの値の意味が解かりません。
教えて下さい。

補足日時:2001/01/10 14:04
    • good
    • 0
この回答へのお礼

回答有り難うございました。
学問から20年も離れますと、使っていない方式など
ほとんど忘れてしまい皆様のお力をお借りしなければなりません。
これからもよろしくお願いします。

お礼日時:2001/01/13 19:16

 a が原点にくるように並行移動し、原点を中心として回転移動させ、もう一度並行移動させ a を元の位置に戻します。


 具体的に回転角をθとすると、

|cosθ -sinθ||bx-ax|+|ax|
|sinθ  cosθ||by-ay| |ay|
(分りにくいかもしれませんが、
2×2の行列に、ベクトルabをかけて、ベクトルoaを足してます。)

 数値を代入すると
|cosθ -sinθ||1500-200|+|200|
|sinθ  cosθ|| 100-100| |100|

 c も同様に
|cosθ -sinθ||1500-200|+|200|
|sinθ  cosθ|| 900-100| |100|
です。

この回答への補足

│の意味を教えて下さい。

補足日時:2001/01/10 14:07
    • good
    • 0
この回答へのお礼

回答有り難うございました。
学問から20年も離れますと、使っていない方式など
ほとんど忘れてしまい皆様のお力をお借りしなければなりません。
これからもよろしくお願いします。

お礼日時:2001/01/13 19:17

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