• ベストアンサー

エクセルで回転する座標の出し方

エクセルで回転する座標の出し方 (例) 座標X100、Y100の点から好きな角度を回したときのX、Yの座標の求め方 回転中心はX0、Y0 回転方向は反時計回り 例で言えば X141.421、Y0  が0度       X0、Y141.421  が90度       X-141.421、Y0 が180度       X0、Y-141.421 が270度 エクセルでの問題点は 1.角度計算がラジアンになる デグリも関数はあるけど書式がわからない  無理やり(PI()/180)などを使ってるがアークタンジェントでは書式がわからない 2.正と負の計算式・答えが負になるときの処理ができない  回転角度が270度とか 今電卓で打っているのは 100/100=ATAN ----------------------最初の角度 100*100+100*100の答えのルート--------回転中心からの直線距離 最初の角度+動かしたい角度------------求めたい座標の角度 SIN求めたい座標の角度*直線距離-------Y座標 答え COS求めたい座標の角度*直線距離-------X座標 答え 最初のX、Y座標と 動かしたい角度を入れると答えが出るような 物が作りたいです よろしくお願いします エクセル2000 WINXP

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

エクセルは行列演算ができます。 ビジネスでは回転は出てきたことがなく(統計ではあり)、小生の知識は生半可ですが参考までに記してみます。(誤りの個所がもしあればごご容赦ください。) 理系の方なら、ご存知なければ、勉強して見てください。 #1のご回答の回転の行列を左側からの行列乗算をすれば 複雑な関数式を使わなくてできるはず。 >エクセルで回転する座標の出し方 点(x1、y1)を原点周りにΘラヂアン(or度)回転した時の点の新座標、点(X2,Y2)を計算すると言うことですね。回転するの「する」は「させた」の意味ですね。 >回転方向は反時計回り これは通常です。 >角度計算がラジアンになる  ご存知でしょうが、エクセルにはRADIANS関数があります。RADIANS(角度)=ラヂアン >デグリも関数はあるけど ラヂアンを度に変換。 =DEGREES(角度)=度 >書式がわからない エクセルに書式という別の用語があり紛らわしいですが、ここでは、引数の配置、数と意味のこと? >無理やり(PI()/180)などを使ってるが RADIANS関数を使わなければそうなりますね。 >アークタンジェントでは書式がわからない =ATAN(数値)でラヂアン値が-π/2からπ/2の間で返ってくる。 >書式がわからない 前述の通り、意味が判らない。 ---- 値としてA1に角度を120とか度で入れる D2にCOS(s)にあたる=COS(RADIANS(A1)) D3にsin(s)にあたる=SIN(RADIANS(A1)) E2に-SIN(s)にあたる=-SIN(RADIANS(A1)) E3にcos(s)にあたる=COS(RADIANS(A1)) A2にX1の座標値、A3にY1の座標値、 B2に中心のX座標、B3に中心のY座標を入れる。 C2に=A2-b2,C3に=A3-B2 C2:C3にD2:E2の行列をかける。 http://www.metro-hs.ac.jp/rs/sinohara/zahyou_rot/zahyou_rotate.htm 行列の乗算はMMULT関数を使います。 E2に=MMULT(c2:c3,D2:E3)と入れてControlキーShiftキーを左手指で押さえて、右手指でEnterキーを押す。 「配列数式」です。 シフト+コントロル+エンタキーを押す前に答えを出すセルの範囲指定(F2:D3)をしておく必要があります。 http://www.katch.ne.jp/~kiyopon/kansuu/abs.html#MMULT あと原点まで座標を戻す必要があると思います。

その他の回答 (3)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

G4セル  =ASIN(C4/SQRT(C4^2+E4^2)) は    =ASIN(E4/SQRT(C4^2+E4^2)) または  =ACOS(C4/SQRT(C4^2+E4^2)) または  =ATAN(E4/C4) に変更して下さい。質問が45度だったので、間違えてしまいました。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

    A    B    C    D     E    F     G 1       X座標       Y座標 2 回転中心  [ x0]    0   [ y0]    0 3                                   ラジアン 4 初期位置  [x100]   100   [y100]   100    角度   0.785398163 5                                   ↑ 6                             =ASIN(C4/SQRT(C4^2+E4^2)) 7 [度(入力)]  ラジアン 8  90   1.570796327 ← =A8*PI()/180 9 10      [求めるx]   0 11             ↑ 12       =$C$2+($C$4-$C$2)*COS(B8-$G$4)-($E$4-$E$2)*SIN(B8-$G$4) 13 14      [求めるy] 141.4213562 15             ↑ 16       =$E$2+($C$4-$C$2)*SIN(B8-$G$4)+($E$4-$E$2)*COS(B8-$G$4) ●初期位置と回転中心の角度をG4で求めています   G4 = ASIN(C4/SQRT(C4^2+E4^2)) ●入力した回転度数をB8でラジアンに変換しています   B8 = A8*PI()/180 ●X座標の答えを求めています   C10 = $C$2+($C$4-$C$2)*COS(B8-$G$4)-($E$4-$E$2)*SIN(B8-$G$4) ●Y座標の答えを求めています   C14 = $E$2+($C$4-$C$2)*SIN(B8-$G$4)+($E$4-$E$2)*COS(B8-$G$4) [  ]の横、または下に入力します。 質問にあるように回転角度を捉えれば上のようになると思います。ご参考に。

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

とりあえず、原点中心の回転は、 x2 = cos(θ)*x1 -sin(θ)*y1 y2 = sin(θ)*x1 +cos(θ)*y1 この計算式みたいなのでできます。 (θの単位はたぶんラジアン) 回転の中心を(x0,y0),回転前の座標を(x1,y1)回転後の座標を(x2,y2)とすれば、 x2 = x0 + cos(θ)*(x1-x0) - sin(θ)*(y1-y0) y2 = y0 + sin(θ)*(x1-x0) + cos(θ)*(y1-y0) でできます。

関連するQ&A