Esta proyección sobre dos vectores no ortogonales puede calcularse de forma más sencilla mediante el producto cruzado. Sabemos que el producto cruzado de un vector consigo mismo da como resultado el vector cero. Esto se utiliza para filtrar ambos coeficientes.
Supongamos que tenemos tres vectores $\textbf{v}_1$ , $\textbf{v}_2$ y $\textbf{v}_3$ todos ellos situados en el plano definido por el vector unitario perpendicular $\textbf{n}_z$ . Ahora queremos encontrar la proyección del vector $\textbf{v}_1$ en $\textbf{v}_2$ y $\textbf{v}_3$ tal que:
$$\textbf{v}_1=α\textbf{v}_2+β\textbf{v}_3$$
Utilizando el producto cruzado de ambos vectores base obtenemos dos ecuaciones:
$$\textbf{v}_2×\textbf{v}_1=α\textbf{v}_2×\textbf{v}_2+β\textbf{v}_2×\textbf{v}_3$$ $$\textbf{v}_3×\textbf{v}_1=α\textbf{v}_3×\textbf{v}_2+β\textbf{v}_3×\textbf{v}_3 $$ Como el producto cruzado consigo mismo es cero, podemos escribir: $$\textbf{v}_2×\textbf{v}_1=β\textbf{v}_2×\textbf{v}_3$$ $$\textbf{v}_3×\textbf{v}_1=α\textbf{v}_3×\textbf{v}_2 $$ Ahora se pueden extraer los coeficientes, por ejemplo, utilizando el hecho de que los productos cruzados son perpendiculares al plano definido por $\textbf{n}_z$ . El producto punto del vector normal del plano mapea al escalar: $$\textbf{n}_z\cdot (\textbf{v}_2×\textbf{v}_1 )=β\textbf{n}_z\cdot (\textbf{v}_2×\textbf{v}_3)$$ $$\textbf{n}_z\cdot (\textbf{v}_3×\textbf{v}_1)=α\textbf{n}_z\cdot (\textbf{v}_3×\textbf{v}_2) $$ El resultado es el siguiente sistema: $$\alpha = \frac{\textbf{n}_z\cdot (\textbf{v}_3×\textbf{v}_1)}{\textbf{n}_z \cdot (\textbf{v}_3×\textbf{v}_2)}$$ $$ \beta = \frac{\textbf{n}_z\cdot (\textbf{v}_2×\textbf{v}_1)}{\textbf{n}_z \cdot (\textbf{v}_2×\textbf{v}_3)}$$
Lo bueno es que esto también funciona para vectores de longitud no unitaria y no necesitamos inversiones de matrices.