从另一个向量中找出两个垂直向量

mou*_*919 3 java vector

我有一个vector1,我知道3D坐标(vector1可以在任何方向),我想找到两个垂直向量到这个vector1(两个垂直向量也必须彼此垂直).

以编程方式找到两个向量的最快方法是什么(如果可能,用Java编写)?

我试图将vector1旋转90度,但似乎并不总是依赖于vector1的方向.

编辑:垂直向量可以在任何方向.

kra*_*ich 6

要查找第一个向量,可以应用以下算法:
假设原始向量为(A, B, C).如果它们的标量乘积为0,则两个向量是垂直的A * x + B * y + C * z = 0.因此我们得到一个等式.至少有一个A,B或者C不是零.我们假设C不是零.然后一个向量(1,1,-(A + B) / C)配合.的情况下C = 0,但A != 0还是B != 0可以以类似的方式来处理.

找到第二个向量要容易得多:您可以使用原始向量和第一个向量的向量积.而已.