大家好,欢迎来到IT知识分享网。
做计算机视觉时需要运用欧拉旋转以及arctan,搜索了网络上对这两者区别的解释主要是(并不全面):
1.atan输入的是(y1-y2)/(x1-x2),而atan2输入的是(y1-y2),(x1-x2),即两个参数。
2.atan2可以处理x1-x2=0的情况。
但其实两者最重要的区别是:atan2可以处理四个象限的情况,atan只能处理两个象限,这也是为什么atan2要将分母和分子分开输入。
手绘了两张简陋的图,但一目了然。
我们也可以描述为:atan计算的是直线的角度,atan2计算的是向量的夹角。
测试代码:
b1=math.atan2(0,-1) b2=math.atan2(-1,0) b3=math.atan2(0,1) b4=math.atan2(1,0) b5=math.atan2(-1,-1) print(b1,b2,b3,b4,b5)
可以发现atan2兼顾四个象限与分母为0的情况,推荐优先使用。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/138978.html