Visual Tools
Calculators
Tables
Mathematical Keyboard
Converters
Other Tools


Cross Product






A Product That Builds Perpendicular Vectors

The cross product stands apart from every other operation in this section. It takes two vectors and returns a new vector — one that is perpendicular to both inputs. Its magnitude measures the area of the parallelogram the two vectors span, and its direction is determined by a handedness convention that introduces orientation into three-dimensional space. Unlike the dot product, which works in any Rn\mathbb{R}^n and produces a scalar, the cross product is defined exclusively in R3\mathbb{R}^3 and produces a vector. It is anti-commutative, not associative, and zero precisely when the two inputs are parallel. These departures from familiar algebraic patterns are not defects — they reflect the geometric nature of perpendicularity and area in three dimensions.

For step-by-step results on your own numbers, use the cross product calculator on CalculateMatrix.



Algebraic Definition

In three dimensions you often need a direction perpendicular to two given vectors — and nothing so far produces one.
Two vectors in space lie in a plane, and many problems need the direction that stands straight out of it, the way a nail stands up from a table top: the normal of a surface, the axis of a turn. The dot product of the two vectors gives a number, not a direction, so a new operation is needed.
The definition
The cross product of two vectors in R3\mathbb{R}^3, written a×b\mathbf{a} \times \mathbf{b}, is the vector whose components are the three mixed differences below.
Given a=(a1,a2,a3)\mathbf{a} = (a_1, a_2, a_3) and b=(b1,b2,b3)\mathbf{b} = (b_1, b_2, b_3) in R3\mathbb{R}^3, their cross product is a new three-component vector built from pairwise differences of mixed products:
Cross Product (Component Form)
a×b=(a2b3−a3b2, a3b1−a1b3, a1b2−a2b1)\mathbf{a} \times \mathbf{b} = (a_2 b_3 - a_3 b_2,\ a_3 b_1 - a_1 b_3,\ a_1 b_2 - a_2 b_1)
Learn more about this formula: Cross Product (Component Form) →
The result is a vector in R3\mathbb{R}^3, perpendicular to both a\mathbf{a} and b\mathbf{b}, as the check below confirms.
The cross product takes two vectors and returns a vector — unlike the dot product, which returns a number.
The indices rotate cyclically. To obtain the first component, cover the first entries of both vectors and cross-multiply the remaining pairs: a2b3−a3b2a_2b_3 - a_3b_2. For the second component, cover the second entries and cross-multiply with a sign reversal: a3b1−a1b3a_3b_1 - a_1b_3. The third component follows the same logic with the third entries hidden: a1b2−a2b1a_1b_2 - a_2b_1.
A convenient way to package the computation uses a symbolic 3×33 \times 3 determinant whose first row holds the standard basis vectors:
Cross Product (Determinant Form)
a×b=∣ijka1a2a3b1b2b3∣\mathbf{a} \times \mathbf{b} = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \end{vmatrix}
Learn more about this formula: Cross Product (Determinant Form) →
Placing vectors rather than numbers in the top row makes this a notational device rather than a genuine determinant. Still, applying cofactor expansion along that top row reproduces the component formula term by term. The determinant layout keeps the six constituent products and their signs organized in a form that is easy to remember and hard to scramble.
detijku1​u2​u3​v1​v2​v3​=u × v3×1u2​v3​−u3​v2​u3​v1​−u1​v3​?
The symbolic determinant laid out

The three components of the result are being read off a determinant whose first row carries the basis vectors and whose other two rows are the operands. The middle component picks up its minus sign from the checkerboard pattern, not from anything geometric — a detail far easier to trust once seen laid out. Expand it row by row on the cross product visualizer.

That determinant layout is also the quickest way to see why swapping the two vectors flips the sign of the whole product.
For a = (1, 2, 3) and b = (4, 5, 6), the three components come out −3, 6 and −3.
componentformulawith a = (1, 2, 3), b = (4, 5, 6)value
firsta₂b₃ − a₃b₂2·6 − 3·5−3
seconda₃b₁ − a₁b₃3·4 − 1·66
thirda₁b₂ − a₂b₁1·5 − 2·4−3
Pitfall: Dropping the minus on the middle component
Expanding with ++ on the j\mathbf{j} term gives (1,2,3)×(4,5,6)=(−3,−6,−3)(1, 2, 3) \times (4, 5, 6) = (-3, -6, -3). The cofactor signs are +,−,++, -, +, so the j\mathbf{j} term is −(1⋅6−3⋅4) j=6j-(1 \cdot 6 - 3 \cdot 4)\,\mathbf{j} = 6\mathbf{j}, and the result is (−3,6,−3)(-3, 6, -3).
The definition promised a perpendicular vector, and it delivers: both dot products are zero.
A dot product of 00 means two vectors meet at a right angle. Dotting (−3,6,−3)(-3, 6, -3) with each of the original vectors gives exactly that.
dot product with (−3, 6, −3)workresult
a = (1, 2, 3)−3 + 12 − 90
b = (4, 5, 6)−12 + 30 − 180
Scope: three dimensions only, and the order matters.
The formula needs exactly three components, so there is no cross product of two plane vectors in the same sense. Swapping the factors reverses the result, b×a=−(a×b)\mathbf{b} \times \mathbf{a} = -(\mathbf{a} \times \mathbf{b}), and parallel vectors give the zero vector. The sections on the geometric interpretation and the properties of the cross product work these out.
To compute the cross product of two specific vectors, use the vector calculator.
The rest of the page covers the notation, the basis-vector products, the geometric meaning of length and direction, the right-hand rule, the properties, parallel vectors and the scalar triple product.

Cross Product Notation

Notation

Cross Product Notation

The multiplication sign that finally became order-sensitive, the triple product with only one legal parse, and the three ways to spell one basis.
Bold vectors — vector notation; the dot — dot product notation; the symbolic-determinant device is the body's own Algebraic Definition above.
a×b\mathbf{a} \times \mathbf{b}
a cross b
The arithmetic ×\times recycled for a new operation — vector in, vector out, and only in R3\mathbb{R}^3. For the first time in a student's notation, order changes the answer: b×a=−(a×b)\mathbf{b} \times \mathbf{a} = -(\mathbf{a} \times \mathbf{b}), as Properties of the Cross Product below develops.
Casesa×a=0\mathbf{a} \times \mathbf{a} = \mathbf{0} — the bold zero, a vector. Against the dot: same inputs, different species out — scalar from the dot, vector from the cross.
Also writtena∧b\mathbf{a} \wedge \mathbf{b} — the wedge, standard in French texts for this very operation; in differential geometry the wedge is a related but distinct exterior product, so the symbol does not travel safely between fields.
Do not confuseScalar multiplication written with ×\times. Between numbers, ×\times and ⋅\cdot are interchangeable; between vectors they are two different operations — carrying the arithmetic habit across is a species error.
a⋅(b×c)\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c})
a dot, b cross c
The scalar triple product — and its parentheses are a courtesy, not a necessity: the other grouping (a⋅b)×c(\mathbf{a} \cdot \mathbf{b}) \times \mathbf{c} is a species error, a scalar crossed with a vector. Only one parse exists; the volume it computes is The Scalar Triple Product below.
CasesThe cyclic shuffle preserves it — a⋅(b×c)=b⋅(c×a)\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c}) = \mathbf{b} \cdot (\mathbf{c} \times \mathbf{a}) — while any swap of two letters flips the sign, mirroring the cross product's own antisymmetry.
Also written[a,b,c][\mathbf{a}, \mathbf{b}, \mathbf{c}] — the box-product bracket, common in Russian and European texts, where the operation is called the mixed product; some write plain (a,b,c)(\mathbf{a}, \mathbf{b}, \mathbf{c}), colliding with tuples.
Do not confuseA vector result. The nesting reads inside-out: the cross builds a vector, the dot collapses it — the triple product is a number, single bars only when its absolute value is taken.
i,j,k\mathbf{i}, \mathbf{j}, \mathbf{k}
The standard basis of R-three
This page's spelling of the three coordinate directions — bold letters, as in Standard Basis Cross Products below. Two rival spellings coexist: the hatted ı^,ȷ^,k^\hat{\imath}, \hat{\jmath}, \hat{k} of physics, per norm notation, and the subscripted e1,e2,e3\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3 that survives beyond three dimensions.
CasesThe ei\mathbf{e}_i form is the only one that scales — R7\mathbb{R}^7 has an e5\mathbf{e}_5 but no letter for it; i,j,k\mathbf{i}, \mathbf{j}, \mathbf{k} are a three-dimensional luxury.
Also writtenux,uy,uz\mathbf{u}_x, \mathbf{u}_y, \mathbf{u}_z — axis-subscripted, in engineering texts.
Do not confuseThe imaginary unit. Unbolded ii is −1\sqrt{-1} — and the collision is historical, not accidental: Hamilton's quaternions i,j,ki, j, k are the ancestors of both this basis and the cross product itself.
DownloadPNG2×PDF
Notation · Cheat sheet
Vector Notation at a Glance
The marks from the notation cards across the vector pages: how each is read and what it means. Every group links to the full card on its page.
Vectors
v,  v→\mathbf{v}, \; \overset{\to}{v}
vector v
Bold in print, an arrow by hand: either marks a vector, not a number.
AB⟶\overset{\longrightarrow}{AB}
vector A B
The vector from point AA to point BB.
i,j,k\mathbf{i}, \mathbf{j}, \mathbf{k}
the standard basis
Unit vectors along the axes; also e1,…,en\mathbf{e}_1, \ldots, \mathbf{e}_n.
Basic operations
(v1,…,vn)(v_1, \ldots, v_n)
v with components v one to v n
The subscript names a slot: v2v_2 is the second component, a number.
Rn\mathbb{R}^n
R n, real n-space
All vectors with nn real components.
Magnitude
∥v∥\|\mathbf{v}\|
the norm of v
Length; two bars for a vector, one for a number.
∥v∥1,  ∥v∥∞\|\mathbf{v}\|_1, \; \|\mathbf{v}\|_\infty
one-norm, infinity-norm
The subscript picks the norm; ∥v∥2\|\mathbf{v}\|_2 is the usual length.
u^\hat{\mathbf{u}}
u hat
A unit vector: ∥u^∥=1\|\hat{\mathbf{u}}\| = 1.
Dot product
a⋅b\mathbf{a} \cdot \mathbf{b}
a dot b
A number from two vectors; ab\mathbf{a}\mathbf{b} with no dot means nothing.
aTb\mathbf{a}^{T}\mathbf{b}
a transpose b
The same number in matrix form: row times column.
Cross productThis page
a×b\mathbf{a} \times \mathbf{b}
a cross b
A vector from two vectors, in R3\mathbb{R}^3 only.
a⋅(b×c)\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c})
a dot, b cross c
The scalar triple product: a signed volume.
Vector properties
a∥b\mathbf{a} \parallel \mathbf{b}
a is parallel to b
One is a scalar multiple of the other: a=cb\mathbf{a} = c\mathbf{b}.
a⊥b\mathbf{a} \perp \mathbf{b}
a is orthogonal to b
Their dot product is 00.
0\mathbf{0}
the zero vector
Parallel and orthogonal to every vector.
Same marks, different job
∣x∣|x| vs ∥v∥\|\mathbf{v}\|One pair of bars for a number, two for the length of a vector.
⋅\cdot and ×\timesBetween numbers, plain multiplication; between vectors, the dot and cross products.
v2v_2 vs v2\mathbf{v}_2Plain: the second component of v\mathbf{v}; bold: the second vector in a list.
Vector Notation at a Glance·/linear-algebra/vectorsLearn Math Class

Standard Basis Cross Products

Crossing pairs of the standard basis vectors i=(1,0,0)\mathbf{i} = (1,0,0), j=(0,1,0)\mathbf{j} = (0,1,0), k=(0,0,1)\mathbf{k} = (0,0,1) produces a pattern governed by cyclic order:

Standard Basis Cross Products
i×j=k,j×k=i,k×i=j\mathbf{i} \times \mathbf{j} = \mathbf{k}, \quad \mathbf{j} \times \mathbf{k} = \mathbf{i}, \quad \mathbf{k} \times \mathbf{i} = \mathbf{j}
Learn more about this formula: Standard Basis Cross Products →


Swapping the two factors in any of these pairs flips the sign:

Standard Basis Cross Products
j×i=−k,k×j=−i,i×k=−j\mathbf{j} \times \mathbf{i} = -\mathbf{k}, \quad \mathbf{k} \times \mathbf{j} = -\mathbf{i}, \quad \mathbf{i} \times \mathbf{k} = -\mathbf{j}

Fact: Dot and cross began as one product
Hamilton's quaternion units obey this same table, ij=kij = k and ji=−kji = -k, except that i2=−1i^2 = -1 instead of 00. Multiplying two quaternions with no real part gives −a⋅b-\mathbf{a} \cdot \mathbf{b} plus a×b\mathbf{a} \times \mathbf{b}; the dot and cross products were later split out of that one product.

The organizing principle is a directed loop i→j→k→i\mathbf{i} \to \mathbf{j} \to \mathbf{k} \to \mathbf{i}. Traversing it in the forward direction yields a positive basis vector; going against the loop negates the outcome. Any basis vector crossed with a copy of itself gives 0\mathbf{0}: i×i=j×j=k×k=0\mathbf{i} \times \mathbf{i} = \mathbf{j} \times \mathbf{j} = \mathbf{k} \times \mathbf{k} = \mathbf{0}.

Every cross product in R3\mathbb{R}^3 can be traced back to these nine cases. Expressing both input vectors as linear combinations of i\mathbf{i}, j\mathbf{j}, k\mathbf{k} and distributing the cross product over the resulting sums reduces the computation to a collection of basis-pair cross products. Gathering terms afterward recovers the component formula.

The nine pairings sit in one lookup grid below, with the left input vector indexing the rows and the right input indexing the columns.
a × b b = i b = j b = k
a = i 0 k −j
a = j −k 0 i
a = k j −i 0

Geometric Interpretation

The cross product carries geometric content on two distinct levels — one captured by its length, the other by its orientation in space.

The magnitude satisfies:

Cross Product Magnitude
∥a×b∥=∥a∥ ∥b∥sin⁡θ\|\mathbf{a} \times \mathbf{b}\| = \|\mathbf{a}\|\,\|\mathbf{b}\|\sin\theta
Learn more about this formula: Cross Product Magnitude →


where θ\theta is the angle separating a\mathbf{a} and b\mathbf{b}. The product ∥a∥ ∥b∥sin⁡θ\|\mathbf{a}\|\,\|\mathbf{b}\|\sin\theta has a clean geometric reading: it is the area enclosed by the parallelogram whose adjacent sides are a\mathbf{a} and b\mathbf{b}:

Parallelogram Area
Area=∥a×b∥\text{Area} = \|\mathbf{a} \times \mathbf{b}\|
Learn more about this formula: Parallelogram Area →


At θ=π2\theta = \frac{\pi}{2} the sine reaches 11 and the parallelogram attains its largest possible area for those two lengths — a rectangle. At θ=0\theta = 0 or θ=π\theta = \pi the sine vanishes, the two sides collapse onto the same line, and the enclosed area drops to zero.

THEOREM
The direction of a×b\mathbf{a} \times \mathbf{b} sits at a right angle to both a\mathbf{a} and b\mathbf{b} simultaneously.

An algebraic confirmation is straightforward: evaluate a⋅(a×b)\mathbf{a} \cdot (\mathbf{a} \times \mathbf{b}) and b⋅(a×b)\mathbf{b} \cdot (\mathbf{a} \times \mathbf{b}) component by component, and both dot products reduce to zero. The cross product therefore solves a problem that no other operation in the section addresses — it constructs a direction that exits the plane spanned by two given vectors.
The length of a × b is the area of the parallelogram on a and bOθa = (4, 0)b = (1, 3)height ‖b‖ sin θ = 3area 12area = base × height = ‖a‖ · ‖b‖ sin θ = 4 · 3 = 12in ℝ³: (4, 0, 0) × (1, 3, 0) = (0, 0, 12), a vector of length 12the length of a × b is the parallelogram’s area
Length as area

With a along the x-axis, the height of the parallelogram is the dashed drop from the tip of b, and it equals ‖b‖ sin θ. Base times height is ‖a‖ ‖b‖ sin θ — exactly the formula for ‖a × b‖. Here the base is 4 and the height 3, so the area is 12; computing (4, 0, 0) × (1, 3, 0) in components gives (0, 0, 12), a vector of that same length, pointing straight out of the plane.

The parallelogram collapses to a segment when a and b are parallel, which is why their cross product is zero.

Direction and the Right-Hand Rule

A plane in R3\mathbb{R}^3 has two unit normals — they point in opposite directions, and the magnitude formula alone cannot choose between them. Resolving this ambiguity requires an external convention: the right-hand rule.

The procedure is physical: align the fingers of the right hand along a\mathbf{a} and curl them toward b\mathbf{b} through the shorter arc. The extended thumb then indicates which of the two perpendicular directions a×b\mathbf{a} \times \mathbf{b} adopts.

Switching the operands — computing b×a\mathbf{b} \times \mathbf{a} instead — reverses the curl direction, sending the thumb the opposite way. This is the geometric engine behind anti-commutativity: the two cross products share the same length but face in opposite directions.

Embedded in the right-hand rule is the concept of orientation. A coordinate system is called right-handed when i×j\mathbf{i} \times \mathbf{j} points along k\mathbf{k}; a left-handed system would have it pointing along −k-\mathbf{k}. The cross product is sensitive to this distinction — adopting the opposite handedness convention would reverse every cross product in R3\mathbb{R}^3. No such sensitivity appears in the dot product; in R2\mathbb{R}^2 the same orientation question is answered by the sign of the 2×22 \times 2 determinant a1b2−a2b1a_1b_2 - a_2b_1.
Swapping the order of a cross product reverses its directionaba × bout of the pagecurl from a toward bcounter-clockwiseabb × ainto the pagecurl from b toward aclockwiseright-hand rule: fingers curl first → second, the thumb gives the cross productswap the order and the cross product turns around
Order decides direction

Both panels use the same a and b. Curling the fingers of the right hand from a toward b turns counter-clockwise on the page, and the thumb points out of the page (⊙): that is a × b. Starting from b and curling toward a turns clockwise, and the thumb points into the page (⊗): b × a. Same length, opposite direction — anti-commutativity, a × b = −(b × a).

The magnitude formula fixes how long a × b is; the right-hand rule is the only thing that fixes which way it points.

Properties of the Cross Product

Several algebraic rules govern the cross product, some mirroring the basic operations and others breaking from them sharply.

Anti-Commutativity


Cross Product Anti-Commutativity
a×b=−(b×a)\mathbf{a} \times \mathbf{b} = -(\mathbf{b} \times \mathbf{a})
Learn more about this formula: Cross Product Anti-Commutativity →


Exchanging the two inputs flips the output vector. In the language of the right-hand rule, reversing which vector the fingers follow and which they curl toward sends the thumb the other way.

Distributivity


Properties of the Cross Product
a×(b+c)=a×b+a×c\mathbf{a} \times (\mathbf{b} + \mathbf{c}) = \mathbf{a} \times \mathbf{b} + \mathbf{a} \times \mathbf{c}

Pitfall: Expanding as if the order did not matter
Multiplying out (i+j)×(i−j)(\mathbf{i} + \mathbf{j}) \times (\mathbf{i} - \mathbf{j}) like (x+y)(x−y)=x2−y2(x + y)(x - y) = x^2 - y^2 cancels the middle terms and gives 0\mathbf{0}. But −i×j=−k-\mathbf{i} \times \mathbf{j} = -\mathbf{k} and j×i=−k\mathbf{j} \times \mathbf{i} = -\mathbf{k} add up, so the result is −2k-2\mathbf{k}.

The cross product spreads across sums on either side. Because of anti-commutativity, distributing from the right introduces a sign change relative to distributing from the left.

Expanding a product of two sums, such as (a+b)×(c+d)(\mathbf{a} + \mathbf{b}) \times (\mathbf{c} + \mathbf{d}), applies this rule on both sides and produces four cross products: a×c+a×d+b×c+b×d\mathbf{a} \times \mathbf{c} + \mathbf{a} \times \mathbf{d} + \mathbf{b} \times \mathbf{c} + \mathbf{b} \times \mathbf{d}. Each term keeps a factor of the first sum on the left and a factor of the second sum on the right. The layout is the same as multiplying out two binomials in algebra; what differs is which of the resulting terms may be combined.

Scalar Factoring


Properties of the Cross Product
(ca)×b=c(a×b)=a×(cb)(c\mathbf{a}) \times \mathbf{b} = c(\mathbf{a} \times \mathbf{b}) = \mathbf{a} \times (c\mathbf{b})

A scalar coefficient can migrate freely between the inputs and the output. This makes the cross product linear in each slot independently.

Non-Associativity


Properties of the Cross Product
a×(b×c)≠(a×b)×cin general\mathbf{a} \times (\mathbf{b} \times \mathbf{c}) \neq (\mathbf{a} \times \mathbf{b}) \times \mathbf{c} \quad \text{in general}

Regrouping the factors produces a different vector. This stands in stark contrast to addition and scalar multiplication, where parentheses can be shifted without consequence. The vector triple product expansion provides a workaround for simplifying nested cross products:

Vector Triple Product
a×(b×c)=(a⋅c) b−(a⋅b) c\mathbf{a} \times (\mathbf{b} \times \mathbf{c}) = (\mathbf{a} \cdot \mathbf{c})\,\mathbf{b} - (\mathbf{a} \cdot \mathbf{b})\,\mathbf{c}
Learn more about this formula: Vector Triple Product →


A related identity, due to Lagrange, expresses the dot product of two cross products as a determinant of pairwise dot products:

Lagrange Identity
(a×b)⋅(c×d)=(a⋅c)(b⋅d)−(a⋅d)(b⋅c)(\mathbf{a} \times \mathbf{b}) \cdot (\mathbf{c} \times \mathbf{d}) = (\mathbf{a} \cdot \mathbf{c})(\mathbf{b} \cdot \mathbf{d}) - (\mathbf{a} \cdot \mathbf{d})(\mathbf{b} \cdot \mathbf{c})
Learn more about this formula: Lagrange Identity →


Setting c=a\mathbf{c} = \mathbf{a} and d=b\mathbf{d} = \mathbf{b} recovers the magnitude identity ∥a×b∥2=∥a∥2∥b∥2−(a⋅b)2\|\mathbf{a} \times \mathbf{b}\|^2 = \|\mathbf{a}\|^2\|\mathbf{b}\|^2 - (\mathbf{a} \cdot \mathbf{b})^2, which is equivalent to sin⁡2θ=1−cos⁡2θ\sin^2\theta = 1 - \cos^2\theta.

Self-Cross Product


Properties of the Cross Product
a×a=0\mathbf{a} \times \mathbf{a} = \mathbf{0}

Crossing a vector with itself always returns the zero vector. Anti-commutativity forces this: a×a=−(a×a)\mathbf{a} \times \mathbf{a} = -(\mathbf{a} \times \mathbf{a}) has the unique solution 0\mathbf{0}. From the geometric side, a single vector does not span any area — the parallelogram degenerates to a segment — and no unique perpendicular direction can be extracted.
DownloadPNG2×PDF
Vectors · cross product

Properties of the cross product

Linear in each slot and distributive, like the dot product — but anti-commutative rather than commutative, and not associative at all. The two failures are the ones worth holding onto.

06entries
Unconditional2
ii
Distributivitya×(b+c)=a×b+a×c\mathbf{a} \times (\mathbf{b} + \mathbf{c}) = \mathbf{a} \times \mathbf{b} + \mathbf{a} \times \mathbf{c}
Combined with scalar factoring this makes the cross product bilinear — linear in each slot…
Unconditional
Requires
spreads over sums on either side

Combined with scalar factoring this makes the cross product bilinear — linear in each slot separately, which is what lets it be computed by the determinant formula.

iii
Scalar factoring(ca)×b=c(a×b)=a×(cb)(c\mathbf{a}) \times \mathbf{b} = c(\mathbf{a} \times \mathbf{b}) = \mathbf{a} \times (c\mathbf{b})
Scalars migrate freely between slots and out front.
Unconditional
Requires
any scalar cc

Scalars migrate freely between slots and out front. A negative cc reverses the output, consistent with anti-commutativity.

Conditional2
i
Anti-commutativitya×b=−(b×a)\mathbf{a} \times \mathbf{b} = -(\mathbf{b} \times \mathbf{a})
Swapping the inputs reverses the output vector.
Order flips sign
Holds when
always — the sign is the rule, not an exception

Swapping the inputs reverses the output vector. The magnitude is unchanged, so the parallelogram area is the same; only the perpendicular direction flips, which is the right-hand rule reading itself backwards.

iv
Self-cross producta×a=0\mathbf{a} \times \mathbf{a} = \mathbf{0}
Forced by anti-commutativity: a × a = -(a × a), and the only vector equal to its own negative…
Always zero
Holds when
for every a\mathbf{a}, including 0\mathbf{0}

Forced by anti-commutativity: a×a=−(a×a)\mathbf{a} \times \mathbf{a} = -(\mathbf{a} \times \mathbf{a}), and the only vector equal to its own negative is 0\mathbf{0}. Geometrically a vector spans no parallelogram with itself, so there is no area and no unique perpendicular.

Fails or undefined2
v
Associativitya×(b×c)≠(a×b)×c\mathbf{a} \times (\mathbf{b} \times \mathbf{c}) \neq (\mathbf{a} \times \mathbf{b}) \times \mathbf{c}
The triple product expansion a × (b × c) = b(a·c) - c(a·b) is the workaround: it rewrites a…
Fails
Fails when
in general — parenthesisation changes the result

The triple product expansion a×(b×c)=b(a⋅c)−c(a⋅b)\mathbf{a} \times (\mathbf{b} \times \mathbf{c}) = \mathbf{b}(\mathbf{a}\cdot\mathbf{c}) - \mathbf{c}(\mathbf{a}\cdot\mathbf{b}) is the workaround: it rewrites a nested cross product without one.

Witnessa = i, b = i, c = j
a × (b × c) = i × (i × j) = i × k = −j
(a × b) × c = (i × i) × j = 0 × j = 0
vi
Cancellationa×b=a×c⇏b=c\mathbf{a} \times \mathbf{b} = \mathbf{a} \times \mathbf{c} \nRightarrow \mathbf{b} = \mathbf{c}
The cross product discards whatever is parallel to a — the mirror image of the dot product…
Fails
Fails when
always, for a≠0\mathbf{a} \neq \mathbf{0}

The cross product discards whatever is parallel to a\mathbf{a} — the mirror image of the dot product, which discards whatever is perpendicular. Between them nothing is lost, which is why the two together determine a vector completely.

Witnessa = (1, 0, 0), b = (0, 1, 0), c = (1, 1, 0)
a × b = a × c = (0, 0, 1), yet b ≠ c
Unconditional
Conditional
Fails or undefined
Anti-commutativityOrder flips sign
a×b=−(b×a)\mathbf{a} \times \mathbf{b} = -(\mathbf{b} \times \mathbf{a})
Holds when
always — the sign is the rule, not an exception
Swapping the inputs reverses the output vector. The magnitude is unchanged, so the parallelogram area is the same; only the perpendicular direction flips, which is the right-hand rule reading itself backwards.
DistributivityUnconditional
a×(b+c)=a×b+a×c\mathbf{a} \times (\mathbf{b} + \mathbf{c}) = \mathbf{a} \times \mathbf{b} + \mathbf{a} \times \mathbf{c}
Requires
spreads over sums on either side
Combined with scalar factoring this makes the cross product bilinear — linear in each slot separately, which is what lets it be computed by the determinant formula.
Scalar factoringUnconditional
(ca)×b=c(a×b)=a×(cb)(c\mathbf{a}) \times \mathbf{b} = c(\mathbf{a} \times \mathbf{b}) = \mathbf{a} \times (c\mathbf{b})
Requires
any scalar cc
Scalars migrate freely between slots and out front. A negative cc reverses the output, consistent with anti-commutativity.
Self-cross productAlways zero
a×a=0\mathbf{a} \times \mathbf{a} = \mathbf{0}
Holds when
for every a\mathbf{a}, including 0\mathbf{0}
Forced by anti-commutativity: a×a=−(a×a)\mathbf{a} \times \mathbf{a} = -(\mathbf{a} \times \mathbf{a}), and the only vector equal to its own negative is 0\mathbf{0}. Geometrically a vector spans no parallelogram with itself, so there is no area and no unique perpendicular.
AssociativityFails
a×(b×c)≠(a×b)×c\mathbf{a} \times (\mathbf{b} \times \mathbf{c}) \neq (\mathbf{a} \times \mathbf{b}) \times \mathbf{c}
Fails when
in general — parenthesisation changes the result
The triple product expansion a×(b×c)=b(a⋅c)−c(a⋅b)\mathbf{a} \times (\mathbf{b} \times \mathbf{c}) = \mathbf{b}(\mathbf{a}\cdot\mathbf{c}) - \mathbf{c}(\mathbf{a}\cdot\mathbf{b}) is the workaround: it rewrites a nested cross product without one.
Witnessa = i, b = i, c = j
a × (b × c) = i × (i × j) = i × k = −j
(a × b) × c = (i × i) × j = 0 × j = 0
CancellationFails
a×b=a×c⇏b=c\mathbf{a} \times \mathbf{b} = \mathbf{a} \times \mathbf{c} \nRightarrow \mathbf{b} = \mathbf{c}
Fails when
always, for a≠0\mathbf{a} \neq \mathbf{0}
The cross product discards whatever is parallel to a\mathbf{a} — the mirror image of the dot product, which discards whatever is perpendicular. Between them nothing is lost, which is why the two together determine a vector completely.
Witnessa = (1, 0, 0), b = (0, 1, 0), c = (1, 1, 0)
a × b = a × c = (0, 0, 1), yet b ≠ c
Both failures come from the same source: the output is a vector perpendicular to its inputs, so it depends on their order and on which pair you multiply first. The dot product returns a scalar and fails in the opposite direction — it commutes freely but leaves R3\mathbb{R}^3 entirely.
Properties of the cross product·/linear-algebra/vectors/cross-productLearn Math Class

Parallel Vectors and the Cross Product

The cross product furnishes a clean test for parallelism:

Parallelism Test (Cross Product)
a×b=0  ⟺  a∥b\mathbf{a} \times \mathbf{b} = \mathbf{0} \iff \mathbf{a} \parallel \mathbf{b}
Learn more about this formula: Parallelism Test (Cross Product) →


Pitfall: Reading a zero cross product as perpendicular
Taking a×b=0\mathbf{a} \times \mathbf{b} = \mathbf{0} to mean a right angle mixes up the two tests. (1,2,3)×(2,4,6)=0(1, 2, 3) \times (2, 4, 6) = \mathbf{0} because (2,4,6)=2(1,2,3)(2, 4, 6) = 2(1, 2, 3): the vectors are parallel, and their dot product is 2828, not 00.

Parallel vectors sit along the same line, so the angle between them is 00 or π\pi. In either case sin⁡θ\sin\theta vanishes, collapsing the magnitude ∥a×b∥=∥a∥ ∥b∥sin⁡θ\|\mathbf{a} \times \mathbf{b}\| = \|\mathbf{a}\|\,\|\mathbf{b}\|\sin\theta to zero. A zero magnitude forces the cross product itself to be 0\mathbf{0}. The zero vector is parallel to every vector by convention, so the test absorbs the edge cases naturally.

This criterion pairs naturally with the dot product's test for orthogonality. A vanishing dot product signals perpendicularity; a vanishing cross product signals collinearity. The two tests cover opposite ends of the angular spectrum — maximum separation versus no separation at all — and between them, any angular configuration of two vectors in R3\mathbb{R}^3 can be diagnosed.

The Scalar Triple Product

Three vectors in R3\mathbb{R}^3 can be combined into a single scalar by nesting the cross product inside a dot product:

The Scalar Triple Product
a⋅(b×c)\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c})

The inner operation b×c\mathbf{b} \times \mathbf{c} yields a vector orthogonal to both b\mathbf{b} and c\mathbf{c}, whose length equals the area of the parallelogram they outline. The outer dot product then projects a\mathbf{a} onto that orthogonal direction, effectively extracting the component of a\mathbf{a} that rises out of the b\mathbf{b}-c\mathbf{c} plane. Multiplying base area by height produces a volume: the result is the signed volume of the parallelepiped whose edges are a\mathbf{a}, b\mathbf{b}, c\mathbf{c}.

Taking the absolute value strips the sign and gives the true geometric volume of the parallelepiped:

Parallelepiped Volume
V=∣a⋅(b×c)∣V = |\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c})|
Learn more about this formula: Parallelepiped Volume →


The sign itself records handedness — it is positive when the triple a\mathbf{a}, b\mathbf{b}, c\mathbf{c} follows the right-hand convention and negative when it does not.

The tetrahedron (triangular pyramid) with edges a\mathbf{a}, b\mathbf{b}, c\mathbf{c} from a common vertex occupies exactly one-sixth of this parallelepiped:

Pyramid Volume
V=16∣a⋅(b×c)∣V = \tfrac{1}{6}|\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c})|
Learn more about this formula: Pyramid Volume →


The factor 16\tfrac{1}{6} arises as 13\tfrac{1}{3} (the general pyramid factor V=13⋅base⋅heightV = \tfrac{1}{3} \cdot \text{base} \cdot \text{height}) times 12\tfrac{1}{2} (the triangular base is half the parallelogram base).

An equivalent computation arranges the nine components into a 3×33 \times 3 determinant:

Scalar Triple Product
a⋅(b×c)=∣a1a2a3b1b2b3c1c2c3∣\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c}) = \begin{vmatrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{vmatrix}
Learn more about this formula: Scalar Triple Product →


A zero determinant means the parallelepiped has been flattened — the three vectors are coplanar, all confined to a single plane with no volume between them.

The scalar triple product is a 3×33 \times 3 determinant read as a volume: its size is the space three vectors span, its sign their handedness.

Dot Product vs Cross Product

The two multiplication operations available for vectors occupy complementary niches, and contrasting them sharpens the purpose of each.

Fact: Only 3 and 7 dimensions allow it
A product that distributes over sums, stands perpendicular to both factors and has length ∥a∥ ∥b∥sin⁡θ\|\mathbf{a}\|\,\|\mathbf{b}\|\sin\theta exists, beyond the trivial cases, only in R3\mathbb{R}^3 and R7\mathbb{R}^7. By a theorem of Hurwitz, such products come from number systems of dimension 4 and 8, the quaternions and the octonions.

At the most basic level, they differ in what comes out: the dot product delivers a number, while the cross product delivers a vector. They also differ in scope — the component-wise sum of products behind the dot product generalizes to any Rn\mathbb{R}^n, whereas the cross product's reliance on three-component determinants confines it to R3\mathbb{R}^3.

Order sensitivity separates them further. Swapping the operands in a dot product changes nothing; swapping them in a cross product reverses the resulting vector entirely. This distinction — commutativity versus anti-commutativity — reflects a deeper geometric divide. The dot product is insensitive to handedness; the cross product is built on it.

The conditions under which each product vanishes tell opposite stories. A zero dot product flags perpendicularity: the vectors share no directional overlap. A zero cross product flags collinearity: the vectors lie along the same line and enclose no area. One detects maximum angular separation; the other detects none at all.

Taken together, the two products partition the angular information between a pair of vectors in R3\mathbb{R}^3 without overlap. The dot product isolates the cos⁡θ\cos\theta factor — the projection of one vector onto the other. The cross product isolates the sin⁡θ\sin\theta factor — the extent to which the vectors diverge from each other's direction, packaged as a perpendicular vector whose length records the enclosed area. Every geometric relationship between two vectors in three dimensions can be read from these two numbers.
DownloadPNG2×PDF
Vectors · two products

Dot against cross

Two ways of multiplying vectors that disagree on almost every attribute. Where one is zero the other is largest, and between them they measure the two things a pair of vectors has: how much they agree, and how much they span.

2products
TypeConditionoutputdefined inswapping the argumentszero whengeometric reading
Measures agreement
Dot product§ 8a⋅b=∥a∥∥b∥cos⁡θ\mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\|\|\mathbf{b}\|\cos\thetaa scalarany Rn\mathbb{R}^nunchanged — commutativeperpendicular, θ=π/2\theta = \pi/2projection of one onto the other
Measures spread
Cross product§ 8∥a×b∥=∥a∥∥b∥sin⁡θ\|\mathbf{a} \times \mathbf{b}\| = \|\mathbf{a}\|\|\mathbf{b}\|\sin\thetaa vectoronly R3\mathbb{R}^3sign reverses — anti-commutativeparallel, θ=0\theta = 0 or π\piarea of the parallelogram spanned
The opposition is systematic rather than coincidental. One extracts cos⁡θ\cos\theta and one extracts sin⁡θ\sin\theta, and every difference below follows: zero at opposite angles, scalar against vector, commutative against sign-reversing. Given both products, θ\theta is determined completely — neither alone suffices.
Dot against cross·/linear-algebra/vectors/cross-productLearn Math Class
Every row opposes because the two products extract different halves of the same angle. The dot product carries cos⁡θ\cos\theta and the cross product sin⁡θ\sin\theta, so one peaks exactly where the other vanishes — and together they pin θ\theta down completely, which neither can do alone. The remaining differences follow from the outputs: a scalar has no orientation to reverse, while a vector does, which is why one commutes and the other flips sign.

Summary of Cross Product Uses

The preceding sections put the cross product to a small set of distinct uses — measuring the area of a parallelogram, constructing a vector perpendicular to a given plane, testing whether two vectors are parallel, computing the volume of a parallelepiped through the scalar triple product, and reducing nested cross products through the vector triple product expansion. The table below collects these uses in one place: each row pairs a geometric or algebraic result with the formula that delivers it and a one-line statement of what that result captures.
Result Formula What it captures
Area of a parallelogram ‖a × b‖ = ‖a‖ ‖b‖ sin θ size of the region spanned by a and b
Perpendicular direction a × b ⊥ a  and  a × b ⊥ b a vector normal to the plane of a and b
Test for parallelism a × b = 0 ⇔ a ∥ b detects when two vectors are collinear
Right-handed orientation i × j = k (by convention) resolves the two-normal ambiguity
Volume of a parallelepiped |a · (b × c)| volume of the box with edges a, b, c (without the absolute value, the signed volume)
Test for coplanarity a · (b × c) = 0 detects when three vectors lie in one plane
Vector triple product a × (b × c) = (a · c)b − (a · b)c reduces a nested cross product to a sum of scaled vectors

Common Pitfalls

Three mistakes account for many wrong cross products. Each one is marked where it happens in the sections above; here each is worked through in full, with the wrong and the right working side by side.

Dropping the minus on the middle component

The symbolic determinant is expanded along its top row, but all three cofactors are taken with a plus sign. The j\mathbf{j} component comes out with the wrong sign.

Wrong working, for a=(1,2,3)\mathbf{a} = (1, 2, 3) and b=(4,5,6)\mathbf{b} = (4, 5, 6):
a×b=(2⋅6−3⋅5) i+(1⋅6−3⋅4) j+(1⋅5−2⋅4) k=(−3,−6,−3)\mathbf{a} \times \mathbf{b} = (2 \cdot 6 - 3 \cdot 5)\,\mathbf{i} + (1 \cdot 6 - 3 \cdot 4)\,\mathbf{j} + (1 \cdot 5 - 2 \cdot 4)\,\mathbf{k} = (-3, -6, -3)


Right working: the cofactor signs along the top row are +,−,++, -, +.
a×b=(2⋅6−3⋅5) i−(1⋅6−3⋅4) j+(1⋅5−2⋅4) k=(−3,6,−3)\mathbf{a} \times \mathbf{b} = (2 \cdot 6 - 3 \cdot 5)\,\mathbf{i} - (1 \cdot 6 - 3 \cdot 4)\,\mathbf{j} + (1 \cdot 5 - 2 \cdot 4)\,\mathbf{k} = (-3, 6, -3)

This matches the component formula, whose middle entry is a3b1−a1b3=3⋅4−1⋅6=6a_3b_1 - a_1b_3 = 3 \cdot 4 - 1 \cdot 6 = 6.

Why it happens: the minus sign on the middle term is not visible in the determinant itself; it comes from the checkerboard of cofactor signs, which is easy to forget when the expansion is done quickly.

How to check: the result must be perpendicular to both inputs. (−3,−6,−3)⋅(1,2,3)=−24(-3, -6, -3) \cdot (1, 2, 3) = -24, so the wrong answer fails. (−3,6,−3)⋅(1,2,3)=0(-3, 6, -3) \cdot (1, 2, 3) = 0 and (−3,6,−3)⋅(4,5,6)=0(-3, 6, -3) \cdot (4, 5, 6) = 0.

Expanding as if the order did not matter

A product of two sums is multiplied out with distributivity, and the terms are then collected as in ordinary algebra, where xyxy and yxyx are the same.

Wrong working:
(a+b)×(a−b)=a×a−b×b=0(\mathbf{a} + \mathbf{b}) \times (\mathbf{a} - \mathbf{b}) = \mathbf{a} \times \mathbf{a} - \mathbf{b} \times \mathbf{b} = \mathbf{0}

The middle terms −a×b-\mathbf{a} \times \mathbf{b} and b×a\mathbf{b} \times \mathbf{a} are taken to cancel.

Right working: keep all four terms in order and use b×a=−(a×b)\mathbf{b} \times \mathbf{a} = -(\mathbf{a} \times \mathbf{b}).
(a+b)×(a−b)=a×a−a×b+b×a−b×b=−2(a×b)(\mathbf{a} + \mathbf{b}) \times (\mathbf{a} - \mathbf{b}) = \mathbf{a} \times \mathbf{a} - \mathbf{a} \times \mathbf{b} + \mathbf{b} \times \mathbf{a} - \mathbf{b} \times \mathbf{b} = -2(\mathbf{a} \times \mathbf{b})

With a=i\mathbf{a} = \mathbf{i} and b=j\mathbf{b} = \mathbf{j}, the result is −2k-2\mathbf{k}, not 0\mathbf{0}.

Why it happens: the pattern (x+y)(x−y)=x2−y2(x + y)(x - y) = x^2 - y^2 is so familiar that the middle terms are cancelled without being written down. That cancellation needs xy=yxxy = yx, which the cross product does not have.

How to check: compute one case in components. (1,1,0)×(1,−1,0)=(0,0,−2)(1, 1, 0) \times (1, -1, 0) = (0, 0, -2), which is −2k-2\mathbf{k}.

Reading a zero cross product as perpendicular

The two zero tests are swapped: a zero cross product is read as a right angle, the meaning that belongs to a zero dot product.

Wrong working:
(1,2,3)×(2,4,6)=0  ⟹  (1,2,3)⊥(2,4,6)(1, 2, 3) \times (2, 4, 6) = \mathbf{0} \implies (1, 2, 3) \perp (2, 4, 6)


Right working: a zero cross product means the vectors are parallel. Here (2,4,6)=2(1,2,3)(2, 4, 6) = 2(1, 2, 3), so the angle between them is 00. The test for a right angle is the dot product, and (1,2,3)⋅(2,4,6)=2+8+18=28≠0(1, 2, 3) \cdot (2, 4, 6) = 2 + 8 + 18 = 28 \neq 0.

Why it happens: both tests end in "equals zero", and the dot product test for perpendicular vectors is usually learned first, so a zero result gets the familiar reading.

How to check: go back to the magnitude formula. ∥a×b∥=∥a∥ ∥b∥sin⁡θ\|\mathbf{a} \times \mathbf{b}\| = \|\mathbf{a}\|\,\|\mathbf{b}\|\sin\theta is zero only when sin⁡θ=0\sin\theta = 0, at θ=0\theta = 0 or θ=π\theta = \pi. Perpendicular vectors give the longest cross product their lengths allow, as in i×j=k\mathbf{i} \times \mathbf{j} = \mathbf{k}.

Cross Product FAQ

Is ×\times between vectors the same as ×\times between numbers?

+
No, and carrying the arithmetic habit across is a genuine error. Between numbers ×\times and ⋅\cdot are interchangeable, but between vectors they name two different operations returning different kinds of object: the dot gives a scalar, the cross gives a vector. The cross product also exists only in three dimensions.Read more →

Does a⋅(b×c)\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c}) really need its parentheses?

+
They are a courtesy rather than a necessity, because only one grouping makes sense. The alternative reading would cross a scalar with a vector, which is not a defined operation. So the expression parses uniquely: the cross builds a vector, then the dot collapses it, and the result is a number.Read more →

Why do ii, jj, kk mean basis vectors here but −1\sqrt{-1} elsewhere?

+
The collision is historical rather than coincidental: Hamilton's quaternions i,j,ki, j, k are the common ancestor of both this basis and the cross product itself. Boldface separates them in print. Note also that e1,e2,e3\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3 scales to any dimension, while i,j,k\mathbf{i}, \mathbf{j}, \mathbf{k} runs out of letters past three.Read more →

Is there a cross product in dimensions other than three?

+
Beyond three, only in seven. The component formula on this page needs exactly three entries, but a product that distributes over sums, stands perpendicular to both factors and has length ∥a∥ ∥b∥sin⁡θ\|\mathbf{a}\|\,\|\mathbf{b}\|\sin\theta is also possible in R7\mathbb{R}^7, and in no other higher dimension. By a theorem of Hurwitz, such products come from the quaternions and octonions. The plane has none; there the number a1b2−a2b1a_1b_2 - a_2b_1 records orientation instead.Read more →

How do you find the volume of a tetrahedron from three vectors?

+
Take one sixth of the absolute scalar triple product, V=16∣a⋅(b×c)∣V = \tfrac{1}{6}|\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c})|, with a\mathbf{a}, b\mathbf{b}, c\mathbf{c} the three edges leaving one vertex. The triple product gives the parallelepiped on those edges; the factor is 13\tfrac{1}{3} from the pyramid formula times 12\tfrac{1}{2}, since the triangular base is half the parallelogram. For i\mathbf{i}, j\mathbf{j}, k\mathbf{k} the triple product is 11, so the corner tetrahedron of the unit cube has volume 16\tfrac{1}{6}.Read more →

How do you test whether three vectors are coplanar?

+
Compute the scalar triple product: a⋅(b×c)=0\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c}) = 0 exactly when the three vectors lie in one plane. It equals the 3×33 \times 3 determinant with a\mathbf{a}, b\mathbf{b}, c\mathbf{c} as its rows, and a zero value means the parallelepiped they span has been flattened to no volume. For example, (1,2,3)(1, 2, 3), (4,5,6)(4, 5, 6) and (7,8,9)(7, 8, 9) give a determinant of 00, and indeed (7,8,9)=2(4,5,6)−(1,2,3)(7, 8, 9) = 2(4, 5, 6) - (1, 2, 3).Read more →