• ベストアンサー

任意の地点からの回転座標の求め方

座標A,B,C,Dからなる四角形を中心Dを基準にして、 θ角度を回転させたあとの各点の座標(X,Y)が知りたいのですが、 計算式がまったく分かりません。 昔、勉強したのかもしれませんが文系だったのでさっぱりです。 どなたか教えてください。 お願いいたします。 A--------D |           | |     D     | |           | B--------C

  • kkk311
  • お礼率61% (145/235)

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

  • ベストアンサー
  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.3

こんにちは。 高校数学で「回転行列」というのを習います。 http://ja.wikipedia.org/wiki/%E5%9B%9E%E8%BB%A2%E8%A1%8C%E5%88%97 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 というふうに無変換になるので、つじつまが合います。

kkk311
質問者

お礼

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

その他の回答 (2)

  • puusannya
  • ベストアンサー率41% (59/142)
回答No.2

四角形は 長方形と考えていいのでしょうか。 もしそうなら次のように考えられますが。 対角線の交点を原点とし、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についても同様。 ざっとこのように考えましたが、如何でしょうか。

kkk311
質問者

お礼

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

  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.1

>座標A,B,C,Dからなる四角形を中心Dを基準にして、 意味不明です。 Dは頂点ですか中心ですか。

kkk311
質問者

補足

すみません。 中心点Eの間違いです A--------D |            | |   E        | |            | B--------C

関連する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

  • 回転した座標系を基準とし、再回転したときの回転行列について

    x軸、y軸、z軸が互いに直角に交わる座標系を考えます。(これを座標系Aとします) 座標系Aを、原点を中心とし、各軸ごとにθxa,θya,θzaだけ回転させた座標系を座標系Bとします。 さらに、座標系Bを基準とし、各軸ごとにθxb,θyb,θzbだけ回転させた座標系を座標系Cとします。 このとき、座標系Aから見た座標系Cの回転角は、どのように計算すればよろしいでしょうか? 座標系Aを基準とした回転角で座標系Bを計算し、さらに座標系Aを基準とした回転角で座標系Cを計算し……という問題であれば、単純に回転行列を掛けていけばいいと思うのですが、 「1つ前の座標を基準とした回転角を与えられたとき、全体でどれだけ回転したか?」 を表現する方法がわからなかったので、ご教示いただければ幸いです。 何卒よろしくお願いいたします。

  • 3次元での回転による座標変換

    3次元での回転による座標変換に関して質問があります. X軸,Y軸,Z軸の直交座標系があるとします. この座標系において,ある位置ベクトル(a1,b1,c1)がX軸,Y軸,Z軸と成す角度は,θx,θy,θzは,ベクトルの内積から算出可能だと思います. θx=a1/sqrt(a1^2+b1^2+c1^2) θy=b1/sqrt(a1^2+b1^2+c1^2) θz=c1/sqrt(a1^2+b1^2+c1^2) X,Y,Zの直交座標系を回転させて,この位置ベクトルの向きを基準としたX'軸,Y'軸,Z'軸による新しい直交座標系を設定するには,どのようにすればよいでしょうか? θx,θy,θzと各軸での回転角度は違うものという認識でいいのでしょうか? 元の座標系において,各軸回りに順番に回転させればいいかと思うのですが,どうもイメージがつかみきれません. よろしくお願い致します.

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

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

  • 3次元座標での点の回転について

    3次元座標上に複数の点があり、それらを同時にx,y,z軸周りにφ,θ,Ψ度回転させたとき、 各点の移動前と移動後の座標から、この回転角度φ,θ,Ψを求めたいのですが、 どのような計算で求めることができるでしょうか?

  • 回転後の座標について 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座標 に登録したい。

  • B軸回転後の座標について

    横型MCのB軸回転後の座標について何点かお聞きします。 例えば100角の材料を45度回転させてC2削る場合どのようにZ,Xを計算するのですか?マクロで計算するにしても自分の頭でわかっておきたいものなのですが考えていたら頭がこんがらがりました(笑) B軸の回転中心は当然テーブルの中心ですよね? そこで材料をテーブルのど真ん中に取り付けしたとしてワーク座標を 中心にすれば回転中心とワーク座標の中心が一致し楽に計算できると 思うのですがテーブルのど真ん中にワーク座標をもっていくなんてそんな 手のかかること汎用でもないのにしてられませんよね! なのでテーブル中心とワーク座標の中心とが違うのにどのようにして 計算するのか?という疑問とB軸で角度回転させたときは上記の例でいえば 中心をワーク座標にするのが楽なのか、そうでなければ どこをワーク座標にするのが楽なのか?などを教えていただけないでしょうか?あと他にも例をあげて説明していただけたら幸いです!

  • 3次元座標を原点中心に回転したい

    任意のゼロでないベクトル(a,b,c)を原点中心に回転し、z軸に合致させるとする。同じ回転移動を3次元座標上の任意の点(x,y,z)に対して行った時の移動後座標が知りたいのです。 計算と結果を教えて下さい。

  • 回転行列が分かっているとき、基準座標に対してどれだ

    回転行列が分かっているとき、基準座標に対してどれだけ動いたかどうやって調べる? 座標系0(基準座標系)と座標系1があります。 0から1へのZYXオイラー角回転行列1R0がわかっています。 このとき,座標系1であらわされた動き(加速度)a1x,a1y,a1zを座標系0で表わすにはどう計算すればいいですか? よろしくお願いします.

  • 任意座標の求め方

    原点G(X0-Y0)をとりこのG点を取り囲む3点の座標、A(Xa-Ya) B(Xb-Yb) C(Xc-Yc) があるとします この時、G点から3点までの距離を等距離とします 次に、3点ABCを結んだ三角形の中に任意点Dをとり、このD点からそれぞれA 点、B点、C点を結びます この時、∠ADB、∠BDC、∠CDAの角度のみ分かっています この場合、任意点Dの座標を距離を使わず3角度のみで求めることは可能ですか? また、D点からG点までの距離、∠ADGを求めることは可能ですか?(∠BDG、∠CDGでもかまいません) 例題で画像を添付しました 原点Gを(0-0)とし、点ABCをそれぞれの座標とした時、任意D点座標の求め方を教えて下さい また、求め方の計算式があるとするならば、教えてもらえれば助かります わかる方がいましたら、よろしくお願いします