# Dot Product

Prev: Cross Product | Next: Vector Projection |

The dot product, aka inner product, takes two vectors and returns a scalar value. It is an easy way to compute the cosine between two vectors.

The equation bellow shows how to compute the inner product of two vectors *v1* and *v2*. The operation is commonly represented by “.”.

v1 . v2 = v1x*v2x + v1y*v2y + v1z*v2z

The relation with the cosine of the angle between *v1* and *v2* is given by

v1 . v2 = |v1| |v2| * cos(a)

From the above we also know that the inner product of two vectors is 0 (zero) either if any of the vectors is null, or if the vectors are orthogonal, i.e. the angle is 90 degrees (see also the cross product).

Bellow is a list of some properties of the inner product:

v1 . v2 = v2 . v1 v1 . (v2 + v3) = (v1 . v2) + (v1 . v3)

The inner product can be defined as a macro in C:

#define innerProduct(v,q) \ ((v)[0] * (q)[0] + \ (v)[1] * (q)[1] + \ (v)[2] * (q)[2])

Prev: Cross Product | Next: Vector Projection |