Вычисление двух векторов, перпендикулярных третьему в 3D

Чтоbest (fastest) способ вычислить два вектора, которые перпендикулярны третьему вектору (X) и также перпендикулярны друг другу?

Вот как я сейчас вычисляю эти векторы:

// 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);

Я знаю, что существует бесконечное количество решений, и мне все равно, какое из них будет моим решением.

Что стоит за этим вопросом: мне нужно построить матрицу преобразования, где я знаю, в каком направлении должна указывать ось X (первый столбец в матрице). Мне нужно рассчитать оси Y и Z (второй и третий столбец). Как известно, все оси должны быть перпендикулярны друг другу.

Ответы на вопрос(5)

Ваш ответ на вопрос