Le produit vectoriel de deux vecteurs (à ne pas confondre avec le produit scalaire) est un vecteur perpendiculaire au plan formé par les deux vecteurs. Le produit vectoriel de \(\vec{V}\) et \(\vec{U}\) peut être calculé grâce à la formule suivante :
$$ \vec{V} \times \vec{U} = \left ( \begin{matrix} V_y.U_z - V_z.U_y \\ V_z.U_x - V_x.U_z \\ V_x.U_y - V_y.U_x \end{matrix} \right ) $$
Properties |
---|
Si \(\vec{V}\) et \(\vec{U}\) sont collinéaires, \(\vec{V} \times \vec{U}\) est un vecteur nul. |
Si \(\vec{V}\) est nul, \(\vec{V} \times \vec{U}\) est un vecteur nul. |
Si \(\vec{U}\) est nul, \(\vec{V} \times \vec{U}\) est un vecteur nul. |
\(\vec{V} \times \vec{U}\) est normal au plan formé par les vecteurs \(\vec{V}\) and \(\vec{U}\). |
\(\vec{V} \times \vec{U}=-(\vec{U} \times \vec{V}) = (-\vec{U}) \times \vec{V}\). |
La fonction C++ ci-dessous retourne le produit vectoriel de deux vecteurs :
/*!
* \brief Compute the cross product of two vectors (this x V)
* The current vector is the first operand
* \param V is the second operand
* \return a vector = the cross product of the current vector by V
*/
inline rOc_vector rOc_vector::cross(const rOc_vector V)
{
rOc_vector Res;
Res.x()=this->y()*V.z() - this->z()*V.y();
Res.y()=this->z()*V.x() - this->x()*V.z();
Res.z()=this->x()*V.y() - this->y()*V.x();
return Res;
}
Avec MATLAB, le produit vectoriel peut facilement être calculé avec la fonction cross(A, B)
:
>> u=[1,2,3];
>> v=[4,5,6];
>> cross (u,v)
ans =
-3 6 -3