Vector calculator

Dot and cross products of two vectors in 2D or 3D, their magnitudes, the angle between them and the projection of one onto the other, with a drawing.

Drafted with AI writing toolsUpdated Checked examples: 5

Try
Dot product a · b
Dot product a · b: 32
Maximum decimal places: 10; Nearest, ties away from zero
Cross product a × b
(−3, 6, −3)
|a × b| (parallelogram area)
7.3484692283
|a|
3.7416573868
|b|
8.7749643874
Angle between a and b
12.93315449°
Angle in radians
0.2257261286rad
Scalar projection of a onto b
3.6467384467
Vector projection of a onto b
(1.662338, 2.077922, 2.493506)

a · b = 32, so the vectors are 12.9332° apart; the parallelogram they span has area 7.34847.

Vectors a, b and a × b (oblique view)

xyzaba × b
How it's calculated S
  1. Dot product

    a⋅b=1⋅4+2⋅5+3⋅6=32\mathbf a\cdot\mathbf b = 1\cdot4 + 2\cdot5 + 3\cdot6 = 32
  2. Cross product

    a×b=(aybz−azbyazbx−axbzaxby−aybx)=(−36−3)\mathbf a\times\mathbf b = \begin{pmatrix} a_y b_z - a_z b_y \\ a_z b_x - a_x b_z \\ a_x b_y - a_y b_x \end{pmatrix} = \begin{pmatrix}-3 \\ 6 \\ -3\end{pmatrix}
  3. Magnitudes

    ∣a∣=12+22+32=3.74165738677,∣b∣=42+52+62=8.77496438739|\mathbf a| = \sqrt{1^2 + 2^2 + 3^2} = 3.74165738677,\qquad |\mathbf b| = \sqrt{4^2 + 5^2 + 6^2} = 8.77496438739
  4. Angle between them

    θ=atan2⁡(∣a×b∣, a⋅b)=atan2⁡(7.348469228, 32)=12.9331544919∘\theta = \operatorname{atan2}\left(|\mathbf a\times\mathbf b|,\ \mathbf a\cdot\mathbf b\right) = \operatorname{atan2}(7.348469228,\ 32) = 12.9331544919^\circ

    Equivalent to arccos(a·b / |a||b|), but stays accurate when the vectors are nearly parallel.

  5. Projection of a onto b

    comp⁡ba=a⋅b∣b∣=3.64673844671,proj⁡ba=3277 b=(1.6623376622.0779220782.493506494)\operatorname{comp}_{\mathbf b}\mathbf a = \frac{\mathbf a\cdot\mathbf b}{|\mathbf b|} = 3.64673844671,\qquad \operatorname{proj}_{\mathbf b}\mathbf a = \frac{32}{77}\,\mathbf b = \begin{pmatrix}1.662337662 \\ 2.077922078 \\ 2.493506494\end{pmatrix}

About the vector calculator

The dot product multiplies matching components and adds them, a · b = a₁b₁ + a₂b₂ + a₃b₃. The cross product of two 3D vectors is a vector perpendicular to both, and its length equals the area of the parallelogram they span. The angle between the vectors is computed as θ = atan2(|a × b|, a · b), which equals arccos(a · b / |a||b|) but stays accurate for nearly parallel vectors, and the projection of a onto b is (a · b / |b|²) b.

Physics (work and torque), 3D graphics and linear algebra are the usual uses. The default vectors a = (1, 2, 3) and b = (4, 5, 6) give a · b = 32, a × b = (−3, 6, −3) and an angle of about 12.93°.

A dot product of 0 means the vectors are perpendicular; a zero cross product means they are parallel or one is zero. In 2D mode both vectors lie in the xy-plane, so their cross product points along z: (3, 4) × (4, −3) = (0, 0, −25).

How to calculate the dot product

Multiply matching components and add them: a · b = a₁b₁ + a₂b₂ + a₃b₃. The result is a single number, not a vector. For a = (2, −1, 3) and b = (1, 4, −2), a · b = 2 − 4 − 6 = −8. For 2D vectors the sum has two terms instead of three.

Geometrically, a · b = |a||b| cos θ, where θ is the angle between the vectors. A positive dot product means the angle is under 90°, zero means exactly 90°, and negative means over 90°. OpenStax's dot product lesson develops both forms.

How to calculate the cross product

For 3D vectors, a × b = (a₂b₃ − a₃b₂, a₃b₁ − a₁b₃, a₁b₂ − a₂b₁), a vector perpendicular to both a and b. For the same a = (2, −1, 3) and b = (1, 4, −2):

  • x: (−1)(−2) − (3)(4) = 2 − 12 = −10
  • y: (3)(1) − (2)(−2) = 3 + 4 = 7
  • z: (2)(4) − (−1)(1) = 8 + 1 = 9

So a × b = (−10, 7, 9). Check it against both inputs: (−10, 7, 9) · a = −20 − 7 + 27 = 0, and (−10, 7, 9) · b = −10 + 28 − 18 = 0.

The direction follows the right-hand rule, and swapping the order flips the sign: b × a = (10, −7, −9). OpenStax's cross product lesson covers the direction and area meaning.

Worked dot and cross products

DimensionsabDot productCross product
3D(1, 2, 3)(4, 5, 6)32(−3, 6, −3)
2D(3, 4)(4, −3)0(0, 0, −25)
2D(1, 0)(−2, 0)−2(0, 0, 0)
3D(1, 2, 3)(2, 4, 6)28(0, 0, 0)
  • (1, 2, 3) and (4, 5, 6): 4 + 10 + 18 = 32, and the angle between them is about 12.93°.
  • (3, 4) and (4, −3): the dot product is 12 − 12 = 0, so they are perpendicular. A 2D cross product keeps only its z-component, here 3 × (−3) − 4 × 4 = −25.
  • (1, 0) and (−2, 0): they point in opposite directions, so the dot product is negative, the cross product is zero and the angle is 180°.
  • (1, 2, 3) and (2, 4, 6): b = 2a, so the vectors are parallel, the cross product is zero and the angle is 0°.

Magnitude and the angle between two vectors

A vector's magnitude is |a| = √(a₁² + a₂² + a₃²). For (1, 2, 3), |a| = √14 ≈ 3.742, and for (4, 5, 6), |b| = √77 ≈ 8.775.

The angle comes from cos θ = (a · b) ÷ (|a||b|) = 32 ÷ (√14 × √77) ≈ 0.9746, so θ ≈ 12.93°. For (2, −1, 3) and (1, 4, −2), the dot product of −8 gives an obtuse angle of about 117.81°.

Near 0° and 180° the arccos form loses accuracy in floating point, so θ = atan2(|a × b|, a · b) is the safer formula (Kahan's notes on roundoff). A zero vector has no direction, so its angle with another vector is undefined, not 0°.

Parallelogram and triangle area

The length |a × b| equals the area of the parallelogram spanned by a and b, and half of it is the area of the triangle they form. For (1, 2, 3) and (4, 5, 6), |(−3, 6, −3)| = √54 ≈ 7.348, so the triangle's area is about 3.674.

Projection of a onto b

The scalar projection, the signed length of a along b, is (a · b) ÷ |b|. The vector projection is ((a · b) ÷ |b|²) b. Projecting (2, 3) onto (4, 0) gives a scalar projection of 8 ÷ 4 = 2 and the vector (2, 0).

Projection is not symmetric: projecting b onto a answers a different question. A negative scalar projection means a points partly against b.

Dot and cross products in physics

Work is a dot product, W = F · d. A force of (3, 4) N that moves an object through (5, 0) m does 15 J of work, because only the force along the motion counts.

Torque is a cross product, τ = r × F. A 10 N force along y, applied 0.5 m from the pivot along x, gives τ = (0, 0, 5) N·m, pointing along the axis of rotation.

Common mistakes

  • Reversing the cross product. a × b and b × a point in opposite directions.
  • Mixing up the zero tests. A zero dot product means perpendicular; a zero cross product means parallel or opposite.
  • Reading a 2D cross product as a plain number. It is the z-component of a 3D vector. A positive value means b lies counterclockwise from a.

Input notes

  • In 2D mode both z-components are zero, so the cross product points along z.
  • Enter each component separately: 3i + 4j becomes x = 3 and y = 4.
  • Components carry no units. Use one consistent unit system before entering physical vectors.

For matrices, use the matrix calculator; for distances and lines between points, the coordinate geometry calculator. Work and energy problems continue in the work, energy and power calculator.

Worked examples

a = (1, 2, 3), b = (4, 5, 6)

Dimensions
3D
a: x
1
a: y
2
a: z
3
b: x
4
b: y
5
b: z
6
Dot product a · b
32
Cross product a × b
(−3, 6, −3)
|a|
3.7416573868
Angle between a and b
12.93315449 °
|a × b| (parallelogram area)
7.3484692283

Checked against: Hand calculation; exact decimal arithmetic √14, √54 and atan2(√54, 32) in degrees

Perpendicular 2D vectors (3, 4) and (4, −3)

Dimensions
2D
a: x
3
a: y
4
b: x
4
b: y
-3
Dot product a · b
0
Angle between a and b
90 °
Cross product a × b
(0, 0, −25)

Checked against: 3·4 + 4·(−3) = 0; 3·(−3) − 4·4 = −25

Parallel vectors (edge case)

Dimensions
3D
a: x
1
a: y
2
a: z
3
b: x
2
b: y
4
b: z
6
Cross product a × b
(0, 0, 0)
Angle between a and b
0 °
Dot product a · b
28

Checked against: b = 2a, so a × b = 0 and θ = 0

Projection of (2, 3) onto (4, 0)

Dimensions
2D
a: x
2
a: y
3
b: x
4
b: y
0
Scalar projection of a onto b
2
Vector projection of a onto b
(2, 0)
Angle between a and b
56.30993247 °

Checked against: a·b/|b| = 8/4; angle atan2(3, 2) = 56.3099324740202…°

Questions

How do you calculate the dot product of two vectors?

Multiply corresponding components and add the results: a · b = a₁b₁ + a₂b₂ + a₃b₃. For (1, 2, 3) · (4, 5, 6) that is 4 + 10 + 18 = 32. The dot product also equals |a||b| cos θ, so it is positive when the angle is under 90°, 0 at exactly 90° and negative beyond it: (1, 0) · (−2, 0) = −2.

How do you calculate the cross product?

For a = (a₁, a₂, a₃) and b = (b₁, b₂, b₃), a × b = (a₂b₃ − a₃b₂, a₃b₁ − a₁b₃, a₁b₂ − a₂b₁). For (1, 2, 3) × (4, 5, 6) that gives (12 − 15, 12 − 6, 5 − 8) = (−3, 6, −3). The result is perpendicular to both vectors, follows the right-hand rule, and changes sign if the order is swapped: b × a = (3, −6, 3).

How do you find the angle between two vectors?

Use cos θ = (a · b)/(|a||b|). For (1, 2, 3) and (4, 5, 6), cos θ = 32/(√14 × √77) ≈ 0.974632, so θ ≈ 12.93°. Near 0° or 180° the arccos form loses accuracy, so the calculator uses the equivalent θ = atan2(|a × b|, a · b), the form William Kahan recommends in his notes on floating-point roundoff.

What does it mean if the dot product is zero?

The two vectors are perpendicular (orthogonal), provided neither is the zero vector. (3, 4) · (4, −3) = 12 − 12 = 0, so those vectors meet at exactly 90°. In physics the same test shows that a force at right angles to the motion does no work, since work is the dot product of force and displacement.

What is the difference between scalar and vector projection?

The scalar projection of a onto b is the signed length of a along b, a · b / |b|; the vector projection is that length times the unit vector of b, (a · b / |b|²) b. Projecting (2, 3) onto (4, 0) gives a scalar projection of 8/4 = 2 and a vector projection of (2, 0). A negative scalar projection means a points partly against b.

About this calculator

a⋅b=∑aibiθ=atan2⁡(∣a×b∣, a⋅b)proj⁡ba=a⋅b∣b∣2 b\begin{gathered} \mathbf a\cdot\mathbf b = \sum a_i b_i \\[6pt] \theta = \operatorname{atan2}(|\mathbf a\times\mathbf b|,\ \mathbf a\cdot\mathbf b) \\[6pt] \operatorname{proj}_{\mathbf b}\mathbf a = \frac{\mathbf a\cdot\mathbf b}{|\mathbf b|^2}\,\mathbf b \end{gathered}

Sources

  1. Wolfram MathWorld — Dot Product
  2. Wolfram MathWorld — Cross Product
  3. W. Kahan, How futile are mindless assessments of roundoff in floating-point computation? §12 — angles via atan2 rather than arccos

Checked against references

This calculator includes 5 worked examples with independently sourced answers. They run in the test suite, and you can run them here too.

Put this calculator on your site

Paste this where you want the calculator to appear. It is free to use, it stays in step with corrections made here, and the credit line below it links back so your readers can find the full version.

Height
Preview the embed

Keep the credit line. It is the only condition, and it is what keeps these calculators free.