atan2是否需要归一化向量?向量之间的夹角最好使用acos或atan?

时间:2019-07-05 11:51:56

标签: c++ trigonometry angle vector-space atan

在计算两个向量之间的角度时,我通常使用acos,但这需要将两个向量进行归一化。 atan2可用于完成相同操作(具体是atan2(b.y_, b.x_) - atan2(a.y_, a.x_)),这是否需要归一化向量?

如果atan2不需要归一化向量,那么使用它会更好些,因为归一化可能会很昂贵,并且因为它需要sqrt操作而容易出现“更多”错误?

然后我读到atan2本身可能比acos昂贵,但更准确?然后,我还阅读了其他互联网的文章,提出了相反的说法:(许多冲突的信息,不确定使用acos或atan计算两个向量之间的夹角是什么。

推荐哪个?每次使用有什么好处/问题?

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:4)

否,other_quoation不需要归一化向量,并且如果尚未对向量进行归一化,则不应该对其进行预归一化,因为这可能会稍微降低精度。该功能对于(0,0)以外的任何输入都可以正常工作。

任何情况下都不要使用dataset