• ベストアンサー

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

エクセルで回転する座標の出し方 (例) 座標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/17068)
回答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

  • エクセルでの座標計算の質問

    基準座標座標X-300 Y-300 の点を X0Y0を中心に回した計算式です E2に回転したい角度を入れて計算します A1= X 基準座標 A2= -300 B1= Y 基準座標 B2= -300 C1= 基準角度 C2= 45       C2式 =ATAN(A2/B2)/(PI()/180) D1= 中心からの距離 D2= 424.2640687   C2式 =SQRT(A2*A2+B2*B2) E1= 回転角度 E2= 0 F1= 合計角度 F2= 45 C2式=C2+E2 G1= X 答え G2= 300 C2式=COS(F2*PI()/180)*D2 H1= Y 答え H2= 300 C2式=SIN(F2*PI()/180)*D2 このとき回転角度E2の値を換えて計算をしたいのですが 45とか135を入れると合計角度が 90度180度になり XかYの答えが0になるのですが 2.59893E-14 このような答えになります この文字列は何でしょうか? 答えを0にはできませんか (注意)   まだ未完成です正と負の使い分けが出来ていません   X-300Y-300で角度を振ってないのに答えは180度   振った答えになっています (これも未解決) EXCEL2000 WINXP

  • 続、VB 座標軸の回転?

    昨日 http://okwave.jp/qa/q7871613.html で質問したものです。 プログラムを作っていて上手に動かないので再度質問です。 xx = x0 - cx yy = y0 - cy x= xx * cosA - yy * sinA + cx y= xx * sinA + yy * cosA + cy x0 = x y0 = y xx:Xの中心からの相対座標 yy:Yの中心からの相対座標 x0:Xの現在地 y0:Yの現在地 cx:三角形の中心X cy:三角形の中心Y x:座標変換後のX y:座標変換後のY A:角度 このようにプログラムしたのですが、回転をさせると渦巻き状に広がってしまいます。 以下のようにプログラミングしたつもりなのですが、うまくいきません。 悪そうな部分を教えてくれるとありがたいです。 >> リーダーの座標を実座標を差し引いて原点(0,0)とし、メンバーの座標をリーダーからの相対座標(x1,y1)(x2,y2)・・・・とします 例えばメンバー(x1,y1)をリーダー中心に半時計周りへ10度回転させた場合の、移動先の座標を(xx1,yy1)とすると・・・ θ=10度(VBではラジアン単位へ変換してください) xx1=x1 * cosθ - y1 * sinθ yy1=x1 * sinθ + y1 * cosθ これで回転して移動した先xx1、yy1が求まります。 最初に差し引いた実座標を足して戻して完成です。

  • 2点の座標がある座標を中心に回転した場合の座標は?

    ある2点の座標 P1(x1,y1), Q1(x2,y2) が ある座標(X,Y)を中心に回転し、点 P2(x3,y3) Q2(x4,y4) に移動した場合、回転の中心となった座標(X,Y)を求めるにはどうしたら良いでしょうか。

  • 回転後の座標について 5軸加工機

    今年中に、OKKの縦型マシニング機械(三菱Neomatic)に日研のNCインデックス(角度と回転ができる仕様)を載せる予定です。 使いやすくするため、テーブル回転後の座標を、変数で計算ができるプログラムを作っているのですが、うまくいかず頭をかかえてる毎日であります。 そこで、皆様の力をお願いしたく質問させていただきます。 私の希望としては、 #101=回転させたいG54からのX座標(+OR-) #102=回転させたいG54からのY座標(+OR-) #103=回転させたいG54からのZ座標(+OR-) #104=回転C(+OR-) #105=角度A(+OR-) 上記、G54座標中心からずれた数値(#101から#103)から、回転&角度(#104、#105)の数値を変更するだけで、ひねった後の座標を計算し、その答えをG55の座標系に入れるプログラムを作っているのですが、いくつか問題がある為うまくいきません。 ◎G54のワーク座標がテーブル回転中心ではない。 ◎G54のワーク座標の中心位置から、さらにずらした位置を回転させたい。 ◎X,Y,Z及び、回転軸C、角度軸A 共にプラス数値とマイナス数値があり計算が困難。 ◎回転軸C、角度軸A 共に90度以上回る。 この様な原因があり、電卓で計算した数値と変数で計算させた数値が違い、困った次第であります。 機械の特徴としては、 ◎機械座標はマイナス数値 ◎テーブル回転中心座標は#501=X #502=Y #503=Z に登録済み。 ★☆まとめ☆★ #5221=G54X座標 #5222=G54Y座標 #5223=G54X座標 を使い #101=回転させたいG54からのX座標(+OR-) #102=回転させたいG54からのY座標(+OR-) #103=回転させたいG54からのZ座標(+OR-) #104=回転C(+OR-) #105=角度A(+OR-) で移動させた数値の答えを #5221=G54X座標 #5222=G54Y座標 #5223=G54Z座標 に登録したい。 文章が下手で申し訳ありませんが、どなたか変数を使い回転後の座標が計算できるプログラムをお教え下さい。 不明な点等ございましたらお教え下さい。 大変困っているので宜しくお願いします。 まとめの部分を下記の様に修正いたします。 ★☆まとめ☆★ #5221=G54X座標 #5222=G54Y座標 #5223=G54X座標 を使い #101=回転させたいG54からのX座標(+OR-) #102=回転させたいG54からのY座標(+OR-) #103=回転させたいG54からのZ座標(+OR-) #104=回転C(+OR-) #105=角度A(+OR-) で移動させた数値の答えを #5241=G55X座標 #5242=G55Y座標 #5243=G55Z座標 に登録したい。

  • 座標変換について

    X-Y平面上にy=x*tanθという直線があります。楕円を原点を中心として角度θ回転させて、直線と平行にさせて、直線の下の部分にある楕円の座標を求めていきたいのです。VBAでやってもうまくいかなかったので、どなたかプログラムの書き方も教えていただけると助かります。

  • excelの乱数を用いて円が重ならない座標を選び出

    excelの乱数を用いて円が重ならない座標を選び出す方法 2次元平面(0<x<100,0<y<100)に同じ半径rの円を重ならないように配置したいのですが、困ってます。 考えとしては 1.まず1個の円の中心座標を決める(R1(x1,y1)とする) 2.2個目の円を、1個目と重ならないよう配置できる中心座標R2(x2,y2)を乱数で決める。 ((x1-x2)^2+(y1-y2)^2>4r^2) 3.3個目の円を、1個目と2個目と重ならないように配置できる中心座標R3(x3,y3)を決める。 ((x1-x3)^2+(y1-y3)^2>4r^2かつ(x2-x3)^2+(y2-y3)^2>4r^2) これを繰り返す。 このような座標をexcelの乱数機能を用いて出すことは可能でしょうか? 皆様のお力をお貸しください。

  • 直線と座標が最短距離となる直線の座標について

    (1)直線(例:y=1/2×x)と任意の(2)座標(x1、y1)があります。 (1)直線と(2)座標が最短距離となる直線上の座標を計算方法を教えて!!

  • 同一直線上の座標を求めたいのですが…(2)

    昨日、丁寧に教えていただいたのですが、いく通りかのパターンで検証すると、うまく行かないパターンがあり困っています。再度教えてください。 --- 昨日の質問(No.2430366)--- 数学的な事がまったく分からないので、質問の文章もおかしいかもしれませんが、よろしくお願いします。 できれば、わかりやすく簡単な公式があれば助かります。 平面において、同一直線上にある2つのポイントA,Bの座標と、直線の角度が分かっている場合、同一直線上に新たに設けたポイントPの座標を求めるにはどうすればよいですか? Pの位置はその都度変化し、そのときのAとPの距離または、BとPの距離のどちらか一方が分かるという条件です。 --- 回答 --- 2点A,Bを通る直線の式は求められるのでPまでの 距離がわかれば連立方程式を解くことでPの座標は求められます。 平面であれば、A(x1,y1),B(x2,y2),(y2-y1)/(x2-x1)=a、AとPの距離をpとすれば、Pの座標(x、y)は  x={±p/√(1+a^2)}+x1  y={±ap/√(1+a^2)}+y1 で求められます。 ※(^2 は2乗です) ※±の意味は、PがAからみてBと同じ方向なら+、反対方向なら-でいいのではないかと思います。 --- 困っていること --- 確かに上の式で、Pの座標を求めることはできました。 しかし、あるパターンに限ってです。 Aを中心にBが第一、第二、第三、第四象限にある場合、また、座標原点の位置をいろいろ変えて試すと、この式ではPの座標が求められない場合があります。 全ての条件、パターンで通用する公式を教えてください。 または、私の検証方法が間違っているならご指摘ください。 お願いします。

  • エクセルである点からの距離で座標を取りたい

    CADと併用になりますが、任意の直線に対して始点・長さなどがわかっているとき(角度は任意ですが線は何本か並行しています) エクセルに記載された始点からの距離を元にX・Y座標を割り出したいのですが、何かいい方法はありませんでしょうか?

  • 直線の座標の求め方について

    傾きが分かっている直線(2/3)について、ある座標(x1、y1) が分かっているとします。 この直線がある座標(x1、y1)を通るとき、もう一つの点、y2座標が0の時のx2座標の求め方を教えてください。 よろしくお願いします。

専門家に質問してみよう