2つのベクトルの角度を求める方法

共同執筆者 wikiHow編集チーム | 10 出典

この記事には:2つのベクトルの角度を求めるベクトルの角度の公式を証明する

数学者やグラフィックプログラマーは、時として、与えられた2つのベクトルの角度を求める必要があります。このwikiHowを見れば、ベクトルの角度の求め方がわかります。

パート 1
2つのベクトルの角度を求める

  1. 1
    ベクトルを確認する 2つのベクトルに関して分かっている情報をすべて書き出しましょう。下の例題では、ベクトルの寸法座標(成分と呼ばれます)のみ与えられています。[1]すでにベクトルの長さ(大きさ)が分かっている場合、以下のいくつかのステップを飛ばすことができます。
    • 例題:2次元ベクトル = (2,2)と = (0,3)があります。これらのベクトルは = 2i + 2j = 0i + 3j = 3jと表すことができます。
    • 例題は2次元ベクトルを使っていますが、以下に述べる方法は成分の数がいくつであっても適用できます。
  2. 2
    コサインについての公式を書く 2つのベクトルの角度θを知るために、角度のコサインを求める公式を使いましょう。 記事の後半では、この公式について学ぶことができます。それでは早速公式を書いてみましょう。[2]  
    • cosθ = () / (|| ||)
    • || は「の大きさ」を表しています。
    • は、内積(スカラー積)です。内積の詳細については後述します。
  3. 3
    それぞれのベクトルの長さを計算する ベクトルのx成分、y成分、そのベクトル自身を3辺にして直角三角形を描きましょう。そのベクトル自身は斜辺となるので、ピタゴラスの定理を用いれば、ベクトルの長さがわかります。結論から述べると、この式は成分の数がいくつであっても成立します。[3]
    • |u|2 = u12 + u22 ベクトルが3つ以上の成分を持つ場合、次のように単純に成分を増やして足しましょう。+u32 + u42 + ...
    • 従って、2次元ベクトルの長さは次の式になります。|u| = √(u12 + u22)
    • 今回の例では次のようになります。|| = √(22 + 22) = √(8) = 2√2 || = √(02 + 32) = √(9) = 3.
  4. 4
    2つのベクトルの内積を計算する ベクトルの内積を計算する方法は、「スカラー積」とも呼ばれますが、高校生以上のみなさんはおそらくすでに学校で習っています。[4] ベクトルの成分に関して内積を計算するために、2つのベクトルのx成分の積とy成分の積をそれぞれ求めて、その結果をすべて足しましょう。[5]
    • コンピューターグラフィックスプログラムに内積を利用する場合、続きを読む前にポイントを読みましょう。
    • 数学的な用語で表すと、次のようになります。u = (u1, u2)、v = (v1, v2)とすると = u1v1 + u2v2となります。3つ以上の成分を持つベクトルの場合、次のように単純に項を増やして計算しましょう。+ u3v3 + u4v4...
    • 今回の例では、次のようになります。 = u1v1 + u2v2 = (2)(0) + (2)(3) = 0 + 6 = 6 これがの内積です。
  5. 5
    計算結果を公式に当てはめる 公式cosθ = () / (|| | |)に戻りましょう。それぞれのベクトルの内積と長さの値は、両方ともすでに求めました。cosθを計算するため、内積と長さの値をこの公式に当てはめましょう。
    • 今回の例では、計算は次のようになります。cosθ = 6 / (2√2 * 3) = 1 / √2 = √2 / 2
  6. 6
    コサインの値をもとに角度を求める 関数電卓のarccosまたはcos-1の機能を使うと、cos θの値をもとに角度を求めることができます。求めた値によっては、単位円を利用して角度がわかる場合もあります。
    • 今回の例では、cosθ = √2 / 2です。角度を求めるために関数電卓に「arccos√2 / 2」と入れてENTERを押しましょう。あるいは、単位円上でcosθ = √2 / 2となる角度を求めます。角度はθ = π/4 または 45ºとなります。
    • ここまでを全てまとめると、最終的に公式は次のようになります。角度θ = arccos(() / (|| | |))

パート 2
ベクトルの角度の公式を証明する

  1. 1
    この公式の意義を理解する この公式は既存の規則に由来するものではなく、2つのベクトルの内積と角度の定義として生まれました。[6] しかしながら、この取り決めは偶然に生まれたものではありません。基礎幾何学を振り返ると、この公式がなぜ実用的で、直感で理解できる明確な形になっているのかを理解することができます。
    • 以下の例は、3次元以上のベクトルよりも直感的に使えるという理由から、2次元ベクトルを使っています。3つ以上の成分を持つベクトルも、まったく同様の方法で示される性質を持っています。
  2. 2
    余弦定理を再考察する 辺aと辺bのなす角度がθで残りの辺を辺cとする通常の三角形を考えましょう。余弦定理は c2 = a2 + b2 -2abcos(θ)と表されます。この式はごく簡単に基礎幾何学から導かれます。
  3. 3
    三角形を作って2つのベクトルを結びつける 2次元ベクトルを2本、すなわちを角度θを作るように紙に書き出しましょう。三角形を作るために3本目のベクトルを書きましょう。言い換えるならば、 + = を満たすを書きます。について解くと、 = - となります。[7]
  4. 4
    この三角形について余弦定理を書く この「ベクトルで作った三角形」の辺の長さを余弦定理に当てはめましょう。
    • |(a - b)|2 = |a|2 + |b|2 - 2|a| |b|cos(θ)
  5. 5
    このベクトルについて内積を書く 内積とは、そもそも、あるベクトルがもう一方のベクトルから受ける増幅度を表すものです。方向も大きさも同じベクトルの内積は、なす角度が0度なので、増幅の度合いを考える必要はありません。[8] すなわち、 = |a|2となります。これを余弦定理の方程式に当てはめると、次のようになります。
    • ( - ) • ( - ) = + - 2|a| |b|cos(θ)
  6. 6
    おなじみの公式を導く 余弦定理の左辺を展開して、整理すると、ベクトルの角度の公式を得ることができます。
    • - - + = + - 2|a| |b|cos(θ)
    • - - = -2|a| |b|cos(θ)
    • -2() = -2|a| |b|cos(θ)
    • = |a| |b|cos(θ)

ポイント

  • 2つの2次元ベクトルがなすcos θの値を即座に求めたい時には、次の公式を使いましょう。cosθ = (u1 • v1 + u2 • v2) / (√(u12 + u22) • √(v12 + v22)
  • グラフィックプログラマーの仕事は、ベクトルの長さではなく、たいていはその方向だけを重要視します。次の手順で方程式を簡単にして、プログラムの速度を上げましょう。[9][10]
    • それぞれのベクトルを正規化し、長さを1にしましょう。正規化するため、それぞれの成分をベクトルの長さで割りましょう。
    • もともとのベクトルの代わりに、正規化したベクトルの内積を利用しましょう。
    • 長さが1であるため、方程式で長さの条件を考慮に入れる必要はありません。最終的に角度を求める方程式は次のようになります。θ=arccos()
  • コサインを求める公式をもとにして、角度が鋭角か鈍角かを即座に判別することができます。cosθ = () / (|| ||)をまずは考えましょう。
    • 方程式の左辺と右辺は+ーの符号が必ず一致します。
    • 長さは常に正の数であるため、cosθは内積と符号が必ず一致します。
    • それゆえ、内積が正の場合、cosθは正です。θは単位円の第1象限にあり、θ < π / 2 または90ºであることがわかります。角度は鋭角です。
    • 内積が負の場合、cosθは負です。θは単位円の第2象限にあり、π / 2 < θ ≤ π または 90º < θ ≤ 180ºであることがわかります。角度は鈍角です。

記事の情報

この記事は、経験豊富なwikiHowの編集者と調査員から成るチームによって執筆されています。調査員チームは内容の正確性と網羅性を確認しています。

カテゴリ: 数学 | 学び・コミュニケーション

他言語版:

English: Find the Angle Between Two Vectors, Español: encontrar el ángulo entre dos vectores, Deutsch: Den Winkel zwischen zwei Vektoren finden, Português: Achar o Ângulo Entre Dois Vértices, Italiano: Calcolare l'Angolo tra Due Vettori, Français: calculer l’angle entre deux vecteurs, Русский: найти угол между векторами, Nederlands: De hoek tussen twee vectoren vinden, Bahasa Indonesia: Mencari Sudut antara Dua Vektor, 中文: 找到两个向量的夹角, ไทย: หามุมระหว่างสองเวกเตอร์, Tiếng Việt: Tìm góc giữa hai véc tơ, العربية: إيجاد الزاوية بين متجهين, हिन्दी: दो वेक्टर्स के बीच का कोण ज्ञात करें, 한국어: 두 벡터 사이 각도 구하기, Türkçe: İki Vektör Arasındaki Açı Nasıl Bulunur

このページは 3,015 回アクセスされました。
この記事は役に立ちましたか?