• ベストアンサー

座標の回転方向について

∠ABCの場合、3つの座標がどちら報告に回転しているのか判断する方法は無いでしょうか? 座標A、座標B、座標Cで右回りか左回りかを判断したいと思っております。 ご教授をお願いいたします。

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

  • ベストアンサー
  • noocyte
  • ベストアンサー率58% (171/291)
回答No.4

色々書きましたが,結論だけをまとめると, (Cx - Bx) * (Ay - By) - (Ax - Bx) * (Cy - By) の符号 (+ or -) が回転方向になるということです. 0ならば A,B,C は一直線上にあります.

men_tan
質問者

お礼

noocyteさん 教えていただいた計算式で座標の回転方向を 認識できるようになりました。 とても敏速に回答いただきましてありがとうございます。

その他の回答 (3)

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.3

逆三角関数を使うまでもありません. Y ↑ │    A │   / │  /θ │ B───C │ └──────→X A=(Ax, Ay), B=(Bx, By), C=(Cx, Cy), BA = (BAx, BAy) = ベクトル B→A = A - B, (つまり (BAx, BAy) = (Ax - Bx, Ay - By)), BC = (BCx, BCy) = ベクトル B→C = C - B = (Cx - Bx, Cy - By) とします. 2次元ベクトル BC と BA の外積 (クロス積ともいう) は 次のように定義されます. BC × BA = BCx * BAy - BAx * BCy この値は,|BC| * |BA| * sinθ に一致します. (ただしθは B→C から B→A の方向に回転するとき+とします.) したがって,BC × BA の符号を見れば,右回りか左回りかがわかります. (ついでに言うと,|BC × BA| は BC,BA を2つの辺とする平行四辺形の面積です.) このように外積を使えば,2回の乗算だけですむので, 逆三角関数を使う場合に比べて高速かつ計算誤差が少なくなります. tan-1 を使う場合のように,分母が0になる場合の処理が不要で, プログラムも簡単になります. なお,ベクトルの外積は3次元で使われることが多く, 「外積」で検索してもほとんどが3次元の話だと思います. 3次元ベクトル同士の外積は3次元ベクトルになりますが, 2次元ベクトル同士の外積はスカラーになります. (3次元外積において,元の2つのベクトルがXY平面内にある場合を考えれば, 外積のX,Y成分は0になるので,Z成分だけを考えればよい. それが2次元の外積となる.)

  • ebinamori
  • ベストアンサー率21% (96/439)
回答No.2

>(θ1=(atan(ts1)/2π)*360) 間違えました。 x1-x2が正の時 θ1=(atan(ts1)/π)*180 x1-x2が負の時 θ1=(π-(atan(ts1)/π)*180 です。

  • ebinamori
  • ベストアンサー率21% (96/439)
回答No.1

右回り、左回りというのは線分ABと線分BCの成す角が180°より小さくなるのは右回り、左回りどちらかということですよね? VB分からないので方法だけ書きます。(Cしかしらない) A(x1,y1),B(x2,y2),C(x3,y3) とするとまず線分AB,BCとx軸との成す角(θ)を求める。(tan(θ)を求める) ts1=tan(θ1)=(x1-x2)/(y1-y2) ts2=tan(θ2)=(x1-x2)/(y1-y2) ※ここで分子が0になった場合のエラー処理をすること (x1-x2が0の場合でy1-y2が正の場合θ1=90°,負の場合はθ1=270°) ※TANを求める関数があるはず ABとx軸の成す角(θ1):atan(ts1) BCとx軸の成す角(θ2):atan(ts2) ※この値はラジアンで表されているので角度に直す (θ1=(atan(ts1)/2π)*360) ※ATAN(アークタンジェント)を求める関数があるはず 線分AB、BCの成す角(θ3)は θ3=θ2-θ1 後はこの値が正の時左回りで負の時が右回りとなる。 (もちろん±180°の時はどちらでもない) というか自分で書いていてもっと簡単な方法がある気がする。

関連するQ&A

  • 閉図形の座標の配列が右回りか左回りか調べる方法

    以下のような同じ形状の座標があります。 座標Aは、右回り 座標Bは、左回りになっています。 このような座標配列で、右回りか、左回りかを 判断するよい方法はないでしょうか? よろしくお願いします。 座標A 1: 0,0 2: 7,0 3: 7,3 4: 4,3 5: 4,6 6: 0,6 7: 0,0 座標B 1: 0,0 2: 0,6 3: 4,6 4: 4,3 5: 7,3 6: 7,0 7: 0,0

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

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

  • 座標値の求め方

    測量をしていて、座標値が分かっているA点とB点があります。 そして座標が分かっていないC点もあります。 このC点は座標は分かっていないのですが、ABCで三角形を作るとして『A→B』を底辺とした時のC点の成す角度は分かっています。 この場合、このC点の座標値を求める方法はないでしょうか? すみませんが、どなたか教えてください。よろしくお願いします。

  • シーリングファンの回転方向について教えて下さい。

    シーリングファンの回転方向について教えて下さい。 冬場の回転は、下から見て左回り?右回り?

  • 時計のワインディングマシンの回転方向について

    詳しい方がいらっしゃいましたら教えて下さい。自動巻きの腕時計をワインディングマシンにセットした際に、時計を正面に見て右回り(時計回り)に回転させた方がいいのか、左回りに回転させた方がいいのか、どっちがいいのでしょうか?それとも時計によって違うのでしょうか?ワィンディングマシンはスイッチで右回り、左回りの切り替えができるようになっています。

  • 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と各軸での回転角度は違うものという認識でいいのでしょうか? 元の座標系において,各軸回りに順番に回転させればいいかと思うのですが,どうもイメージがつかみきれません. よろしくお願い致します.

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

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

  • 重心の座標

    △ABCの重心をGとするときの座標について。。。 A(-2,5),B(4,-9)C(7,-8)のとき、点Gの座標 (-2+4+7)÷3,(5+(-9)+(-8)÷3)で(3,-4)になったんですがやり方あってますか?? そしてA(-2,3),B(4,6),G(2,1)のとき、点Cの座標のやり方が全然分かりません。教えて下さい。

  • 座標から求める面積

    こんにちわ。中三受験生です。 関数の問題とかで「座標から求める面積」って感じの問題がありますよね。そのときに数学の先生から簡単な方法を教えてもらいました。 例題 A(0,0)B(2,4)C(6,0)から成り立っている三角形ABCの面積を求めよ。 っていう問題だったら 1、たてにABCAという順番(最初の座標を必ず最後にもう一度)で書く 2、斜めに掛けていき、下に縦の和を書く 3、左右の大きいほうから小さいほうを引き、2で割る  (0,0) 0(2,4)0 24(6,0)0 0(0,0)0 ---------- 24   0 24-0=24 24÷2=12 A.12cm2 ということなのですが、、、何でこうなるのか不思議です!!私や友達の塾の先生や新しく来た数学の先生では誰もわかりませんでした。どなたかわかる方がいらっしゃいましたら御回答お願いします。 ※たてに並べる順番は、ABCの順番でなくても良いですが四角形や五角形などはある点から右、もしくは左回りでなくてはいけません。 ※どんな多角形でも必ず2で割ります。

  • 右メニューの「右回りに回転」と「左回りに回転」について

    画像が入ったフォルダを「縮小版」で表示させ、右クリックすると「右回りに回転」と「左回りに回転」というメニューが出ます。 この「右回りに回転」と「左回りに回転」は画質的には問題無いのでしょうか?。 もしかしたら専用のソフトの方がきれいでしょうか?。 あまり画質にはこだわらないですが...気になったので..。 教えてください。

専門家に質問してみよう