
まず画像を見ていただきたいのですが‥
①のように長さも向きも決まっていない2つのベクトルがあり、②のように2つのベクトルのなす角を二等分する青いベクトルを求めて、③青いベクトルがX軸のプラス方向から何度の開きがあるかを求めたいのですが、どのように計算すれば良いでしょうか?
C#で求めようとしていますが、考え方の提示だけで問題ありません。
また、私が数学で理解しているのはベクトル・三角関数・内積・ラジアンあたりまでになります。
ちなみに私は最初、2つのベクトルを正規化してから足すことで青いベクトルを求めて、次にX軸に沿った X=1, Y=0 のベクトルと青いベクトルを正規化したものとでアークコサイン関数を使ってなす角を求めようとしました。
しかし最初の2つのベクトルが180度の開きになっていると結果がおかしくなります。
そこで、条件分岐で180度の開きになった時だけ独自にベクトルを求めようとしているのですが、計算が冗長な感じがしています。
求め方としてこれらの考え方は間違っていないでしょうか?
ちなみに②の二等分するベクトルは2方向存在しますが、Y軸のプラス方向を向くベクトルを必ず取得したいです。

No.3ベストアンサー
- 回答日時:
そうそう, C# なら Math.Atan2 を使えば「x軸となす角」が一発で求まるよ. 正規化しなくていいし角度の範囲も -π
π までちゃんと求まるので簡単.Tacosanさん
ご回答ありがとうございます!
はい、まさに私もAtan2で取得するのを試してうまくいきました!
実はエクセルで計算が合ってるか試してみた際にはACOSですんなりうまくいったのですが、C#のMath.Acosでは同じ結果にならずそのままではうまくいかなかったためAtan2で求めていけました。
ついでに言えば、エクセルのAtan2は引数が(x, y)のようですがC#は(y, x)のようで、こちらも結果が噛み合わずにしばらく混乱したのですが、引数が逆だと気付いて事なきを得ました。。
No.2
- 回答日時:
ぎりぎりの条件では「Y軸のプラス方向を向くベクトル」が存在しないこともあるんだけど, それは OK?
Tacosanさん
確かに、Y軸に沿ったベクトルの場合にその条件を満たしますね‥
ですが私の今実装したいと思っている場面ではその条件にはならないので、OKです!
No.1
- 回答日時:
二つのベクトルをVa(xa,ya), Vb(xb,yb)とすると
各々のベクトルがX軸と成す角度θa, θbは
θa = arccos(xa/|Va|) |Va| = √(xa^2+ya^2)
θb = arccos(xb/|Vb|)
従って求める角度は、(θb - θa)/2 + θa
>siffon9さん
早速のご回答ありがとうございます!
そうか、2つのベクトルそれぞれでX軸とのなす角を求める方がスマートだったのですね!
アークコサイン関数で求めるとベクトルが -1, -1 でも -1, 1 でも成す角度が同じ 2.356194 になってしまいますが、Yがマイナスかプラスかで判定して条件分岐してやれば求められそうです!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 正射影ベクトルで垂直なベクトルを適当に1つもとめて解く問題は多々あると思うんですが 下の図のような問 4 2022/09/14 20:37
- その他(プログラミング・Web制作) 3Dモデルにおける法線の計算について(Python,OpenGL) 1 2023/04/25 23:46
- 数学 ゼロベクトルになる理由を教えてください 2 2023/01/30 15:48
- 物理学 面積速度一定の法則を(1/2)r v sinθを使って証明する方法 2 2023/06/25 12:43
- 数学 数学の問題で法線ベクトルについて 5 2022/11/13 12:45
- 数学 数Bベクトル 平行四辺形ABCDにおいて、辺ABを3:2に内分する点をE、対角線BDを2:5に内分す 3 2022/06/19 12:11
- 数学 ベクトル方程式(ヘッセの標準形)についての質問 2 2022/04/23 18:00
- 数学 数Bです。 定点O、Aと動点Pがある。ベクトルOA=ベクトルa、ベクトルop=ベクトルPとするとき、 3 2022/07/04 23:12
- 物理学 ベクトルと座標系につきまして 1 2022/04/03 06:23
- 数学 写真の数学問題の解答で「ベクトルAP=kベクトルAQ」「ベクトルBP=lベクトルBR」とする発想はど 3 2023/07/19 20:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マウスの移動範囲を限定するに...
-
閉図形の座標の配列が右回りか...
-
座標の回転方向について
-
チェス盤の同型を求める
-
OpenCvSharp4による画像判定解...
-
DirectInputでの現在のマウス座...
-
バイキュービック補間のプログラム
-
ピクチャボックスの座標取得
-
オブジェクト指向による座標変...
-
C#でスクリーンセーバーを作る...
-
VBで車のアナログスピードメー...
-
2D座標を3D座標に変換する...
-
3次元空間上の2つの座標から...
-
ピクセルの座標を取得するには
-
2つの座標と角度から交点座標の...
-
Excel関数で指定範囲内に有るか...
-
「アイテムは収集されました」...
-
エクセルで作った新しいウイン...
-
Minecraft 統合版(PC)の描画距...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
3次元空間上の2つの座標から...
-
エクセルで回転する座標の出し方
-
ダイアログ内コントロールの位...
-
多角形の内部かどうか判定する方法
-
交差する2線分の交点座標の求め方
-
ワード上Shapeの位置情報を統一...
-
C言語 配列で座標
-
閉図形の座標の配列が右回りか...
-
シーケンサー(PLC?)で制...
-
Excel VBA で自在に図形を変化...
-
直線上にある点の座標の求め方
-
エクセルである点からの距離で...
-
OpenCvSharp4による画像判定解...
-
始点、終点の二つの座標と半径...
-
GLで座標を変えて回転させたい
-
ピクチャボックスの座標取得
-
最小二乗平面
-
c言語でキーボードから2点の座...
おすすめ情報
>ちなみに②の二等分するベクトルは2方向存在しますが、Y軸のプラス方向を向くベクトルを必ず取得したいです。
こちらに関しては、③で求めた角度がマイナスになっていれば180度分加えてやればOKですね。。