cross_vectors

compas.geometry.cross_vectors(u, v)[source]

Compute the cross product of two vectors.

Parameters:
u[float, float, float] | compas.geometry.Vector

XYZ components of the first vector.

v[float, float, float] | compas.geometry.Vector

XYZ components of the second vector.

Returns:
[float, float, float]

The cross product of the two vectors.

Notes

The xyz components of the cross product of two vectors \(\mathbf{u}\) and \(\mathbf{v}\) can be computed as the minors of the following matrix:

\begin{bmatrix} x & y & z \\ u_{x} & u_{y} & u_{z} \\ v_{x} & v_{y} & v_{z} \end{bmatrix}

Therefore, the cross product can be written as:

\begin{eqnarray} \mathbf{u} \times \mathbf{v} & = \begin{bmatrix} u_{y} * v_{z} - u_{z} * v_{y} \\ u_{z} * v_{x} - u_{x} * v_{z} \\ u_{x} * v_{y} - u_{y} * v_{x} \end{bmatrix} \end{eqnarray}

Examples

>>> cross_vectors([1.0, 0.0, 0.0], [0.0, 1.0, 0.0])
[0.0, 0.0, 1.0]