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} )\) |
/*!
* \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();
}