Java 从另一个向量中找出两个垂直向量
我有一个向量1,我知道3D坐标(向量1可以在任何方向),我想找到两个垂直于向量1的向量(两个垂直向量也必须相互垂直) 以编程方式(如果可能的话,用Java)查找这两个向量的最快方法是什么 我尝试将矢量1旋转90度,但它似乎并不总是根据矢量1的方向工作 编辑:Java 从另一个向量中找出两个垂直向量,java,vector,Java,Vector,我有一个向量1,我知道3D坐标(向量1可以在任何方向),我想找到两个垂直于向量1的向量(两个垂直向量也必须相互垂直) 以编程方式(如果可能的话,用Java)查找这两个向量的最快方法是什么 我尝试将矢量1旋转90度,但它似乎并不总是根据矢量1的方向工作 编辑: 垂直向量可以是任何方向。要找到第一个向量,可以应用以下算法: 让我们假设原始向量是(A,B,C)。如果两个向量的标量积为0,则它们是垂直的。所以我们得到一个方程A*x+B*y+C*z=0。A、B或C中至少有一个不是零。让我们假设C不是零。然
垂直向量可以是任何方向。要找到第一个向量,可以应用以下算法:
让我们假设原始向量是
(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
找到第二个向量要容易得多:可以使用原始向量和第一个向量的向量积。就是这样。空间是三维的吗?这个问题需要更多的细节。任何两个向量都可以吗?(当然,只要它们相互垂直于矢量1)如何旋转矢量1?