Do me a favor, take a few seconds to have a look at my last project.

Thank you, Lulu

Dot product


The dot product (scalar product) of two vectors is the product of the magnitudes of the two vectors and the cosine of the angle between them. The dot product of vectors \(\vec{V}\) and \(\vec{U}\) can be calculated thanks to the following formula:

$$ \vec{V} \cdot \vec{U} = V_x.U_x + V_y.U_y + V_z.U_z = | \vec{V} |. | \vec{U} | .cos (\theta) $$

where \(\theta\) is the angle between \(\vec{V}\) and \(\vec{U}\).


If \(\vec{V}\) and \(\vec{U}\) are perpendicular, \(\vec{V} \cdot \vec{U}\) is equal to zero.
If \(\vec{V}\) is null, \(\vec{V} \cdot \vec{U}\) is equal to zero.
If \(\vec{U}\) is null, \(\vec{V} \cdot \vec{U}\) is equal to zero.
\(\vec{V} \cdot \vec{V} = | \vec{V} | ^2\)
\(\vec{V} \cdot \vec{U} = \vec{U} \cdot \vec{V}\)
\(\vec{V} \cdot (-\vec{U}) = (-\vec{V}) \cdot \vec{U} = - ( \vec{V} \cdot \vec{U} )\)

C++ source code

 * \brief   Compute the dot product of two vectors (this . V)
 *          The current vector is the first operand
 * \param   V is the second operand
 * \return  the dot product between the current vector and V
inline double rOc_vector::dot(const rOc_vector V)
    return this->x()*V.x() + this->y()*V.y() + this->z()*V.z();

See also

Last update : 04/13/2019