計算ツール
ベクトル 数学 線形代数

2次元ベクトル 計算ツール|内積・大きさ・成分・角度

2次元ベクトルの内積・外積・大きさ・なす角・正規化・和差を一括計算する無料電卓。 物理・線形代数の基本演算に加え、機械学習のコサイン類似度・ゲームプログラミングの当たり判定にも応用できます。

最終更新:2026-07-29/監修:計算ツールズ編集部

ベクトル計算機

ベクトル A

ベクトル B

ベクトル演算の基本式

大きさ |A| = √(Ax² + Ay²)

内積 A·B = Ax×Bx + Ay×By = |A||B|cosθ

外積(z成分)= Ax×By − Ay×Bx = |A||B|sinθ

なす角 cosθ = (A·B) / (|A| × |B|)

正規化 Â = A / |A|(単位ベクトル・長さ1)

和 A+B = (Ax+Bx, Ay+By)

差 A-B = (Ax-Bx, Ay-By)

距離 d(A,B) = |A-B| = √((Ax-Bx)² + (Ay-By)²)

ベクトルの応用分野

物理

  • 力・速度・加速度の合成(分解)
  • 運動量・仕事・エネルギーの計算
  • 電場・磁場のベクトル場
  • ローレンツ力(外積で表現)

ゲームプログラミング

  • キャラクター移動・回転(方向ベクトル)
  • 当たり判定(距離・法線)
  • 視線判定(内積で正面/背面)
  • 反射(法線ベクトルを使った跳ね返り)

機械学習・データサイエンス

  • コサイン類似度(文書・画像の類似度)
  • Embedding空間の距離計算
  • PCA・主成分分析の固有ベクトル
  • ニューラルネットワークの重み行列

3DCG・グラフィックス

  • 法線ベクトル(面の向き・光の計算)
  • 反射・屈折の計算
  • カメラの視線ベクトル
  • ノーマルマッピング

内積の意味と符号

内積 A·B の符号から、2ベクトルの向きの関係が読み取れます:

  • A·B > 0:鋭角(同じ方向寄り、0°〜90°)
  • A·B = 0:直交(90°、内積の最大の応用ポイント)
  • A·B < 0:鈍角(逆方向寄り、90°〜180°)
  • A·B = |A||B|:完全に同じ向き(0°、平行)
  • A·B = -|A||B|:完全に逆向き(180°、反平行)

ゲームでの応用例:視界判定

「プレイヤーが敵の視界に入っているか」を判定するには、 敵の視線ベクトル V と敵→プレイヤーのベクトル P を正規化してから内積を取ります。 内積 > cos(視野角/2) なら視界内。 これはドット積1つの計算で済むため、当たり判定より効率的です。

外積の意味(2Dでは擬似スカラー)

2次元ベクトルの外積は「z成分」だけを出力するため、実質的には擬似スカラーです:

  • A×B > 0:BはAの反時計回り方向
  • A×B = 0:平行(同方向または逆方向)
  • A×B < 0:BはAの時計回り方向
  • |A×B|:AとBが張る平行四辺形の面積

応用:点の左右判定

直線AB上を点Cが左右どちら側にあるかは、 ベクトル AB と ベクトル AC の外積の符号で判定できます。 ゲームAIの経路計算・図形処理で頻出のテクニックです。

ケーススタディ:具体的な計算例

ケース1:A=(3,4), B=(2,1)

  • |A| = √(9+16) = 5
  • |B| = √(4+1) ≈ 2.236
  • A·B = 3×2 + 4×1 = 10
  • A×B = 3×1 − 4×2 = −5(BはAの時計回り側)
  • なす角 cosθ = 10 / (5×2.236) ≈ 0.894 → θ ≈ 26.57°

ケース2:垂直な例 A=(1,0), B=(0,1)

  • A·B = 0(直交確認)
  • A×B = 1(反時計回り90°)
  • なす角 = 90°

ケース3:平行な例 A=(2,3), B=(4,6)

  • A·B = 8 + 18 = 26
  • A×B = 12 − 12 = 0(平行確認)
  • |A||B| = √13 × 2√13 = 26(内積と一致→完全平行)

ケース4:反対向き A=(1,0), B=(-2,0)

  • A·B = -2
  • |A||B| = 2、内積の絶対値と一致
  • なす角 = 180°

ベクトルの学習ロードマップ

高校数学(数B・数III)

  • ベクトルの定義・成分表示
  • 内積・角度
  • ベクトル方程式(直線・円)
  • 空間ベクトル(3次元への拡張)

大学初年度(線形代数)

  • ベクトル空間の公理
  • 基底・次元
  • 行列との対応
  • 固有値・固有ベクトル

応用分野(工学・情報)

  • 物理シミュレーション
  • コンピュータグラフィックス
  • 信号処理・フーリエ変換
  • 機械学習・深層学習

ベクトル計算でハマりやすい落とし穴

1. 内積の順番

ベクトルの内積は可換(A·B = B·A)ですが、 コード上では変数名の入れ違いでバグが発生することがあります。 数式では同じですが、計算式のトレースで意識しましょう。

2. 外積の符号

2D外積は「反時計回りが正」の右手系が標準ですが、 コンピュータグラフィックスではY軸が下向きのため符号が反転する場合があります。 座標系を必ず確認してください。

3. ゼロベクトルの正規化

|A|=0のベクトルは方向を持たないため正規化できません(ゼロ除算エラー)。 本ツールでは「—」を表示していますが、コード実装時は必ずゼロチェックを入れましょう。

4. 角度が180°を超えるケース

arccos関数は0°〜180°しか返しません。 「時計回りに270°」のような向きは、外積の符号を併用して判定します。 atan2関数を使えば -180°〜180° の範囲で厳密な向きが得られます。

5. 浮動小数点誤差

「直交」「平行」の判定は完全一致では無理で、 閾値(例:0.0001)を設けます。本ツールでは0.0001未満を等しいとみなしています。

よくある質問(FAQ)

内積と外積、どちらを使うべき?

角度・方向の一致度を知りたいなら内積、回転方向・面積を知りたいなら外積。両方使うことも多いです。

3次元ベクトルとの違いは?

3次元では外積がベクトル(3成分)になります。2次元は擬似スカラー(1成分)で、計算が簡単です。

ベクトルの正規化はなぜ必要?

方向だけを扱いたい時に長さを1に統一するため。ゲームの向き・機械学習の類似度計算で頻出です。

コサイン類似度と内積の違いは?

コサイン類似度 = 正規化された内積。ベクトルの長さの影響を除いて方向のみで類似度を計算します。

ラジアンと度の変換は?

本ツールは度(degree)で表示しています。ラジアンに変換するには度×π/180、逆はラジアン×180/π。

ベクトルは高校数学のどこで習う?

現行の学習指導要領では数学B・数学Cで扱います。線形代数の入り口として大学初年度でも重要な単元です。

プログラミング言語別の実装例

JavaScript

const dot = (a,b) => a.x*b.x + a.y*b.y;
const mag = a => Math.hypot(a.x, a.y);
const norm = a => { const m = mag(a); return {x:a.x/m, y:a.y/m}; };
const angle = (a,b) => Math.acos(dot(a,b)/(mag(a)*mag(b))) * 180 / Math.PI;

Python (NumPy)

import numpy as np
a = np.array([3, 4])
b = np.array([2, 1])
dot = np.dot(a, b)
mag_a = np.linalg.norm(a)
angle = np.degrees(np.arccos(dot / (mag_a * np.linalg.norm(b))))

C++(3D数学ライブラリ)

// glm を使う場合
glm::vec2 a(3.0f, 4.0f);
glm::vec2 b(2.0f, 1.0f);
float d = glm::dot(a, b);
float ma = glm::length(a);

各言語ともに組み込み関数・ライブラリを使うと数値誤差が抑えられます。 `Math.hypot`は`Math.sqrt(x*x+y*y)`と比べてオーバーフローに強く、推奨されます。

参考リンク(公的機関・学習リソース)

免責事項

本ツールは学習・確認用の計算補助を目的としており、 試験・研究・実務での使用は最終的にご自身の判断でご確認ください。 丸め誤差は表示上4桁で四捨五入していますが、内部計算はIEEE 754浮動小数点で行われます。 極端に大きい/小さい値では誤差が拡大することがあります。 本ツールの計算結果に基づく損害について、当サイトは一切の責任を負いません。