atan2 是否需要归一化向量?向量之间的角度使用 acos 或 atan 哪个更好?
Does atan2 required normalized vectors? Which is better to use acos or atan for angles between vectors?
计算两个向量之间的夹角时,我传统上使用acos,但这需要对两个向量进行归一化。 atan2 可以用来完成同样的事情(特别是atan2(b.y_, b.x_) - atan2(a.y_, a.x_)
),这需要归一化向量吗?
如果 atan2 不需要归一化向量,那么使用它会更好吗,因为归一化可能代价高昂并且 'more' 由于它需要 sqrt 操作而容易出错?
然后我读到atan2本身可以比acos贵,但更准确?然后我还阅读了其他建议相反的互联网 :( 很多相互矛盾的信息,不确定使用 acos 或 atan 计算两个向量之间的角度是什么。
推荐哪个?每种用法的 benefits/issues 是多少?
任何帮助将不胜感激,谢谢!
不,atan2
不需要规范化向量,如果您的向量尚未规范化,您不应该 pre-normalize 它们,因为这可能会稍微降低精度。该函数适用于 (0,0) 以外的任何输入。
你不应该使用 acos
做任何事。
计算两个向量之间的夹角时,我传统上使用acos,但这需要对两个向量进行归一化。 atan2 可以用来完成同样的事情(特别是atan2(b.y_, b.x_) - atan2(a.y_, a.x_)
),这需要归一化向量吗?
如果 atan2 不需要归一化向量,那么使用它会更好吗,因为归一化可能代价高昂并且 'more' 由于它需要 sqrt 操作而容易出错?
然后我读到atan2本身可以比acos贵,但更准确?然后我还阅读了其他建议相反的互联网 :( 很多相互矛盾的信息,不确定使用 acos 或 atan 计算两个向量之间的角度是什么。
推荐哪个?每种用法的 benefits/issues 是多少?
任何帮助将不胜感激,谢谢!
不,atan2
不需要规范化向量,如果您的向量尚未规范化,您不应该 pre-normalize 它们,因为这可能会稍微降低精度。该函数适用于 (0,0) 以外的任何输入。
你不应该使用 acos
做任何事。