# Vector projection

Projection of a on b (a1), and rejection of a from b (a2).
When 90° < θ ≤ 180°, a1 has an opposite direction with respect to b.

The vector projection of a vector a on (or onto) a nonzero vector b (also known as the vector component or vector resolute of a in the direction of b) is the orthogonal projection of a onto a straight line parallel to b. It is a vector parallel to b, defined as

$\mathbf{a}_1 = a_1\mathbf{\hat b}$

where ɑ1 is a scalar, called the scalar projection of a onto b, and is the unit vector in the direction of b. In turn, the scalar projection is defined as

$a_1 = |\mathbf{a}|\cos\theta = \mathbf{a}\cdot\mathbf{\hat b},$

where the operator · denotes a dot product, |a| is the length of a, and θ is the angle between a and b. The scalar projection is equal to the length of the vector projection, with a minus sign if the direction of the projection is opposite to the direction of b.

The vector component or vector resolute of a perpendicular to b, sometimes also called the vector rejection of a from b,[1] is the orthogonal projection of a onto the plane (or, in general, hyperplane) orthogonal to b. Both the projection a1 and rejection a2 of a vector a are vectors, and their sum is equal to a, which implies that the rejection is given by

$\mathbf{a}_2 = \mathbf{a} - \mathbf{a}_1.$

## Notation

Typically, a vector projection is denoted in a bold font (e.g. a1), and the corresponding scalar projection with normal font (e.g. a1). In some cases, especially in handwriting, the vector projection is also denoted using a diacritic above or below the letter (e.g., $\vec{a}_1$ or a1; see Euclidean vector representations for more details).

The vector projection of a on b and the corresponding rejection are sometimes denoted by ab and ab, respectively.

## Definitions based on angle θ

### Scalar projection

Main article: Scalar projection

The scalar projection of a on b is a scalar equal to

$a_1 = |\mathbf{a}| \cos \theta$

where θ is the angle between a and b.

A scalar projection can be used as a scale factor to compute the corresponding vector projection.

### Vector projection

The vector projection of a on b is a vector whose magnitude is the scalar projection of a on b and whose angle against b is either 0 or 180 degrees. Namely, it is defined as

$\mathbf{a}_1 = a_1 \mathbf{\hat b} = (|\mathbf{a}| \cos \theta) \mathbf{\hat b}$

where a1 is the corresponding scalar projection, as defined above, and is the unit vector with the same direction as b:

$\mathbf{\hat b} = \frac {\mathbf{b}} {|\mathbf{b}|}\,$

### Vector rejection

By definition, the vector rejection of a on b is

$\mathbf{a}_2 = \mathbf{a} - \mathbf{a}_1$

Hence,

$\mathbf{a}_2 = \mathbf{a} - (|\mathbf{a}| \cos \theta) \mathbf{\hat b}.$

## Definitions in terms of a and b

When θ is not known, the cosine of θ can be computed in terms of a and b, by the following property of the dot product a · b:

$\frac {\mathbf{a} \cdot \mathbf{b}} {|\mathbf{a}| \, |\mathbf{b}|} = \cos \theta \,$

### Scalar projection

By the above-mentioned property of the dot product, the definition of the scalar projection becomes

$a_1 = |\mathbf{a}| \cos \theta = |\mathbf{a}| \frac {\mathbf{a} \cdot \mathbf{b}} {|\mathbf{a}| \, |\mathbf{b}|} = \frac {\mathbf{a} \cdot \mathbf{b}} {|\mathbf{b}| }\,$

### Vector projection

Similarly, the definition of the vector projection of a onto b becomes

$\mathbf{a}_1 = a_1 \mathbf{\hat b} = \frac {\mathbf{a} \cdot \mathbf{b}} {|\mathbf{b}| } \frac {\mathbf{b}} {|\mathbf{b}|},$

which is equivalent to either

$\mathbf{a}_1 = (\mathbf{a} \cdot \mathbf{\hat b}) \mathbf{\hat b},$

or[2]

$\mathbf{a}_1 = \frac {\mathbf{a} \cdot \mathbf{b}} {|\mathbf{b}|^2}{\mathbf{b}} = \frac {\mathbf{a} \cdot \mathbf{b}} {\mathbf{b} \cdot \mathbf{b}}{\mathbf{b}}.$

The latter formula is computationally more efficient than the former. Both require two dot products and eventually the multiplication of a scalar by a vector, but the former additionally requires a square root and the division of a vector by a scalar,[3] while the latter additionally requires only the division of a scalar by a scalar.

### Vector rejection

By definition,

$\mathbf{a}_2 = \mathbf{a} - \mathbf{a}_1$

Hence,

$\mathbf{a}_2 = \mathbf{a} - \frac {\mathbf{a} \cdot \mathbf{b}} {\mathbf{b} \cdot \mathbf{b}}{\mathbf{b}}.$

## Properties

If 0° ≤ θ ≤ 90°, as in this case, the scalar projection of a on b coincides with the length of the vector projection.

### Scalar projection

Main article: Scalar projection

The scalar projection a on b is a scalar which has a negative sign if 90 < θ ≤ 180 degrees. It coincides with the length |c| of the vector projection if the angle is smaller than 90°. More exactly:

• a1 = |a1| if 0 ≤ θ ≤ 90 degrees,
• a1 = −|a1| if 90 < θ ≤ 180 degrees.

### Vector projection

The vector projection of a on b is a vector a1 which is either null or parallel to b. More exactly:

• a1 = 0 if θ = 90°,
• a1 and b have the same direction if 0 ≤ θ < 90 degrees,
• a1 and b have opposite directions if 90 < θ ≤ 180 degrees.

### Vector rejection

The vector rejection of a on b is a vector a2 which is either null or orthogonal to b. More exactly:

• a2 = 0 if θ = 0 degrees or θ = 180 degrees,
• a2 is orthogonal to b if 0 < θ < 180 degrees,

## Matrix representation

The orthogonal projection can be represented by a projection matrix. To project a vector onto the unit vector a = (ax, ay, az), it would need to be multiplied with this projection matrix:

$P_a = a a^\mathrm{T} = \begin{bmatrix} a_x \\ a_y \\ a_z \end{bmatrix} \begin{bmatrix} a_x & a_y & a_z \end{bmatrix} = \begin{bmatrix} a_x^2 & a_x a_y & a_x a_z \\ a_x a_y & a_y^2 & a_y a_z \\ a_x a_z & a_y a_z & a_z^2 \\ \end{bmatrix}$

## Uses

The vector projection is an important operation in the Gram–Schmidt orthonormalization of vector space bases. It is also used in the Separating axis theorem to detect whether two convex shapes intersect.

## Generalizations

Since the notions of vector length and angle between vectors can be generalized to any n-dimensional inner product space, this is also true for the notions of orthogonal projection of a vector, projection of a vector onto another, and rejection of a vector from another. In some cases, the inner product coincides with the dot product. Whenever they don't coincide, the inner product is used instead of the dot product in the formal definitions of projection and rejection.

For a three-dimensional inner product space, the notions of projection of a vector onto another and rejection of a vector from another can be generalized to the notions of projection of a vector onto a plane, and rejection of a vector from a plane.[4] The projection of a vector on a plane is its orthogonal projection on that plane. The rejection of a vector from a plane is its orthogonal projection on a straight line which is orthogonal to that plane. Both are vectors. The first is parallel to the plane, the second is orthogonal. For a given vector and plane, the sum of projection and rejection is equal to the original vector.

Similarly, for inner product spaces with more than three dimensions, the notions of projection onto a vector and rejection from a vector can be generalized to the notions of projection onto a hyperplane, and rejection from a hyperplane.

In geometric algebra, they can be further generalized to the notions of projection and rejection of a general multivector onto/from any invertible k-blade.

3. ^ The second dot product, the square root and the division are not shown, but they are needed to compute; $\mathbf{\hat b} = {\mathbf{b}} / {|\mathbf{b}|}$ (for more details, see the definition of Euclidean norm).