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

时间:2014-11-10 18:57:20

标签: java vector

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

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

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

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

1 个答案:

答案 0 :(得分:6)

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

查找第二个向量要容易得多:您可以使用原始向量和第一个向量的向量积。那就是它。