Vector 如何计算两个非单位向量之间的角度

Vector 如何计算两个非单位向量之间的角度,vector,trigonometry,Vector,Trigonometry,我需要对一组向量进行循环排序。最简单的方法是使用向量和固定轴之间的角度。要获得角度,必须对向量进行规格化,包括执行昂贵的平方根计算 因为我想避免成本,我不需要特定的角度-只是一些给我相同顺序的值-我想知道是否有一种方法来计算每个向量的值,不需要对向量进行归一化,并产生类似角度的值(即如果角度(x)>角度(y),那么f(x)>f(y)).y分量与x分量的比率应足以在不规范化矢量的情况下对矢量进行排序。如果y:x比更大,则角度将更陡。这至少适用于第一象限(0到90度),但总体思路应该足以让您开始。谢

我需要对一组向量进行循环排序。最简单的方法是使用向量和固定轴之间的角度。要获得角度,必须对向量进行规格化,包括执行昂贵的平方根计算


因为我想避免成本,我不需要特定的角度-只是一些给我相同顺序的值-我想知道是否有一种方法来计算每个向量的值,不需要对向量进行归一化,并产生类似角度的值(即
如果角度(x)>角度(y),那么f(x)>f(y)
).

y分量与x分量的比率应足以在不规范化矢量的情况下对矢量进行排序。如果y:x比更大,则角度将更陡。这至少适用于第一象限(0到90度),但总体思路应该足以让您开始。

谢谢,但如何继续使用角度>90度?我不知道向量的最大长度,因此如果向量较长,第一象限的值可能大于第二象限的值。对于不在第一象限的角度(0-90度),一个或两个分量将为负。因此,根据哪个分量是负的,你可以算出象限在哪个向量中,然后应用相同的思想,看y:x比率来确定顺序。我找到了一个解决方案。也许我问的方式值得保留这个问题?