Obliczanie dwóch wektorów, które są prostopadłe do trzeciego wektora w 3D

Co to jestnajlepiej (najszybciej) sposób obliczenia dwóch wektorów, które są prostopadłe do trzeciego wektora (X), a także prostopadłe do siebie?

W ten sposób obliczam teraz te wektory:

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

Wiem, że istnieje nieskończona liczba rozwiązań i nie obchodzi mnie, które z nich będzie moim rozwiązaniem.

Co kryje się za tym pytaniem: Muszę skonstruować macierz transformacji, w której wiem, który kierunek powinien wskazywać oś X (pierwsza kolumna w macierzy). Muszę obliczyć oś Y i Z (druga i trzecia kolumna). Jak wiemy, wszystkie osie muszą być do siebie prostopadłe.

questionAnswers(5)

yourAnswerToTheQuestion