我有一个vector1,我知道3D坐标(vector1可以在任何方向),我想找到两个垂直向量到这个vector1(两个垂直向量也必须彼此垂直).
以编程方式找到两个向量的最快方法是什么(如果可能,用Java编写)?
我试图将vector1旋转90度,但似乎并不总是依赖于vector1的方向.
编辑:垂直向量可以在任何方向.
要查找第一个向量,可以应用以下算法:
假设原始向量为(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可以以类似的方式来处理.
找到第二个向量要容易得多:您可以使用原始向量和第一个向量的向量积.而已.
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |