質問: エクセルで回転する座標の出し方 エクセルで回転する座標の出し方 (例) 座標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
回答: エクセルは行列演算ができます。 ビジネスでは回転は出てきたことがなく(統計ではあり)、小生の知識は生半可ですが参考までに記してみます。(誤りの個所がもしあればごご容赦ください。) 理系の方なら、ご存知なければ、勉強して見てください。 #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 あと原点まで座標を戻す必要があると思います。