Computando dois vetores que são perpendiculares ao terceiro vetor em 3D

O que émelhor (mais rápido) maneira de calcular dois vetores que são perpendiculares ao terceiro vetor (X) e também perpendicular um ao outro?

É assim que eu estou computando esses vetores agora:

// HELPER - unit vector that is NOT parallel to X
x_axis = normalize(X);
y_axis = crossProduct(x_axis, HELPER);
z_axis = crossProduct(x_axis, y_axis);

Eu sei que há um número infinito de soluções para isso, e não me importo qual será a minha solução.

O que está por trás dessa questão: Eu preciso construir a matriz de transformação, onde eu sei qual direção o eixo X (primeira coluna na matriz) deve apontar. Eu preciso calcular o eixo Y e Z (segunda e terceira coluna). Como sabemos, todos os eixos devem ser perpendiculares entre si.

questionAnswers(5)

yourAnswerToTheQuestion