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次元の外積となる.)
No.2
- 回答日時:
>(θ1=(atan(ts1)/2π)*360)
間違えました。
x1-x2が正の時
θ1=(atan(ts1)/π)*180
x1-x2が負の時
θ1=(π-(atan(ts1)/π)*180
です。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 物理学 角速度ベクトルにつきまして 3 2022/08/09 15:44
- 数学 線形代数の2次元直交座標系、極座標系についての問題がわからないです。 2 2022/07/16 20:42
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- 物理学 ね振り子の角度方向の運動と、コリオリ力。 1 2022/12/03 14:36
- 数学 線形代数の問題について教えて欲しいです。 3 2023/05/06 23:13
- 中学校 中1数学 比例のグラフの座標の読み取り 4 2023/03/28 12:26
- 物理学 コリオリの力 1 2022/08/04 08:53
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- 数学 この問題が分かりません! 右図の直線①②の式は、y=-x+4①、 y=3/4x+1② である。2つの 3 2022/05/04 22:29
- 数学 第4問 座標平面上に3点 A(1, 1),B(1, 5), C(7, 3) を頂点とするABCがある 2 2022/10/01 14:53
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
C言語において、0の座標をキャ...
-
C言語 配列で座標
-
c言語でキーボードから2点の座...
-
マインクラフト(pc版)で座標...
-
シーケンサー(PLC?)で制...
-
3次元空間上の2つの座標から...
-
抽出した特徴点の座標を取得し...
-
ファイルの中身を分割するプロ...
-
複数コントロール(ラベル)を...
-
EXCEL VBA でウインドウの...
-
ビットマップ画像の座標を小数...
-
多角形の内部かどうか判定する方法
-
座標の回転方向について
-
求積表の計算方法
-
エクセルでの座標計算の質問
-
WM_NCHITTESTの流れ
-
空間上の二点を結ぶ直線上に任...
-
Excel VBAでマウス移動&ダブル...
-
直線上にある点の座標の求め方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
3次元空間上の2つの座標から...
-
エクセルで回転する座標の出し方
-
始点、終点の二つの座標と半径...
-
ダイアログ内コントロールの位...
-
閉図形の座標の配列が右回りか...
-
エクセルである点からの距離で...
-
多角形の内部かどうか判定する方法
-
以下のプログラムは重心を求め...
-
ワード上Shapeの位置情報を統一...
-
C言語 配列で座標
-
ピクチャボックスの座標取得
-
当たり判定後に面に沿って動か...
-
回転する矩形同士の当たり判定...
-
c言語でキーボードから2点の座...
-
ガウシアンフィルタのCプログラム
-
直線上にある点の座標の求め方
-
Excel VBA で自在に図形を変化...
-
緊急 ベーシックで国旗の作り方...
おすすめ情報