在计算两个 vector 之间的角度时,我传统上使用acos,但这需要对两个 vector 进行归一化。 atan2 可用于完成相同的任务(特别是 atan2(b.y_, b.x_) - atan2(a.y_, a.x_)
),这是否需要归一化 vector ?
如果 atan2 不需要归一化 vector ,那么使用它会更好吗,因为归一化可能成本高昂并且“更”容易出错,因为它需要 sqrt 操作?
然后我读到 atan2 本身可以比 acos 更昂贵,但更准确?然后我还阅读了其他建议相反的互联网 :( 很多相互矛盾的信息,不确定使用 acos 或 atan 计算两个 vector 之间的角度是什么。
推荐哪个?每种用法的好处/问题是什么?
任何帮助将不胜感激,谢谢!
最佳答案
不,atan2
不需要归一化 vector ,如果您的 vector 尚未归一化,您不应该预先归一化它们,因为这可能会稍微降低精度。该函数适用于 (0,0) 以外的任何输入。
你不应该将 acos
用于任何事情。
关于c++ - atan2 是否需要归一化 vector ? vector 之间的角度使用 acos 或 atan 哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56902556/