在C语言的math.h或C++中的cmath中有两个求反正切的函数atan(double x)与atan2(double y,double x)  他们返回的值是弧度 要转化为角度再自己处理下。

前者接受的是一个正切值(直线的斜率)得到夹角,但是由于正切的规律性本可以有两个角度的但它却只返回一个,因为atan的值域是从-90~90 也就是它只处理一四象限,所以一般不用它。

第二个atan2(double y,double x) 其中y代表已知点的Y坐标 同理x ,返回值是此点与远点连线与x轴正方向的夹角,这样它就可以处理四个象限的任意情况了,它的值域相应的也就是-180~180了

例如:

例1:斜率是1的直线的夹角

cout<

cout<

cout<

后两个斜率都是1 但是atan只能求出一个45°

例2:斜率是-1的直线的角度

cout<

cout<

cout<

常用的不是求过原点的直线的夹角 往往是求一个线段的夹角 这对于atan2就更是如鱼得水了

例如求A(1.0,1.0) B(3.0,3.0)这个线段AB与x轴正方向的夹角

用atan2表示为 atan2(y2-y1,x2-x1) 即 atan2(3.0-1.0,3.0-1.0)

它的原理就相当于把A点平移到原点B点相应变成B'(x2-x1,y2-y1)点 这样就又回到先前了

例三:

A(0.0,5.0) B(5.0,10.0)

线段AB的夹角为

cout<

^_^

转自:http://www.cnblogs.com/dutlei/archive/2013/01/14/2860332.html

C语言中的atan和atan2

c语言中atan2(a b)怎么运算,C语言中的atan和atan2(转)相关推荐

  1. c语言atan的作用,C语言中的atan和atan2

    在C语言的math.h或C++中的cmath中有两个求反正切的函数atan(double x)与atan2(double y,double x)  他们返回的值是弧度 要转化为角度再自己处理下. 前者 ...

  2. c语言中if和goto的用法,C语言中if和goto的用法.doc

    C语言中if和goto的用法 C语言中,if是一个条件语句,用法??if(条件表达式) 语句如果满足括号里面表达式,表示逻辑为真于是执行后面的语句,否则不执行(表达式为真则此表达式的值不为0,为假则为 ...

  3. atan与atan2的区别

    相比较ATan,ATan2究竟有什么不同?本篇介绍一下ATan2的用法及使用条件. 对于tan(θ) = y / x: θ = ATan(y / x)求出的θ取值范围是[-PI/2, PI/2]. θ ...

  4. 儒林外史每回概括简短10字_冬至祝福语简短10字左右 ,冬至祝福语简短精悍一句话...

    冬至祝福语简短10字左右 ,冬至祝福语简短精悍一句话 1.冬至来临喜乐多,祝您冬至乐悠悠. 2.冬至冬至,幸福必至,冬至快乐! 3.冬至到,饺子鼓,满满的祝福变无数! 4.冬至到,祝福奉送上,愿你冬至 ...

  5. 驾考一点通维语版_驾考宝典维语版APP下载-驾考宝典维语版正式版下载[安卓版]-华军软件园...

    驾考宝典维语版正式版 驾考宝典维语版正式版是款专为维吾尔族的用户们使用的驾照考试学习工具.驾考宝典维语版APP中有丰富的驾考知识点,用户可以在线学习理论知识和查看学车视频,可以在线做题和进行模拟测试. ...

  6. MATLAB中atan与atan2角度讲解

    atan2求的是一个点所对应的角的大小 ,且输出角度范围是[-π, π] atan求的是一个数值对应的角,且输出角度范围是[-π/2, π/2] 例如: atan(1)=0.7854 atan(1,1 ...

  7. python中 math模块下 atan 和 atan2的区别

    atan 和 atan2 都是反正切函数,返回的都是弧度 对于两点形成的直线,两点分别是 point(x1,y1) 和 point(x2,y2),其斜率对应角度的计算方法可以是: angle = at ...

  8. MATLAB atan 和 atan2

    atan 和 atan2 都是求反正切函数,但参数数量和计算方法都有不同. atan2(a,b)是4象限反正切,它的取值不仅取决于正切值a/b,还取决于点 (b, a) 落入哪个象限    当点(b, ...

  9. C语言math.h库函数中atan与atan2的区别

    今天做图像旋转练习的时候,要根据鼠标的移动轨迹来确定转过的角度,于是就很自然的想到通过三个点来确定这个转过的角度:图像的中心,鼠标按下的点,鼠标拖到的点.想到使用斜率来计算角度,于是联想到数学公式中的 ...

最新文章

  1. Gnuplot安装避坑
  2. 对象拷贝 Apache BeanUtils与Spring BeanUtils性能比较
  3. 第四周实践项目4 建立算法库——双链表
  4. JAVA ++ 运算符题目
  5. 我的学习工作经历,一个园林专业中专毕业生的IT之路
  6. drupal 字符串替换符号 @ % !
  7. 统一并发 IV——走向跨平台
  8. mysql数据库访问程序_c++程序访问MySQL数据库操作示例
  9. tomcat中开启SSL
  10. Spring-boot JPA笔记 Failed to create query for method public abstract 踩坑记录~
  11. C++11新特性——std::bind参数绑定
  12. 香橙派借助语音模块实现语音刷抖音
  13. mysql server安装及配置
  14. (大佬)睿智的目标检测13——Keras搭建mtcnn人脸检测平台
  15. ubuntu 22.04下载安装
  16. 洛谷T156530 儒略历详解
  17. Android的BLE广播数据包介绍和解析---BLE--Android系列, 蓝牙技术BLE
  18. 如何给.txt标签文件添加噪声
  19. 【物理应用】基于傅里叶伽辽金谱法二维纳维-斯托克斯附matlab代码
  20. 微服务 微服务架构

热门文章

  1. 终结者1.“以太网+PON”双管齐下
  2. rop检查_早产儿视网膜病变(ROP)的筛查与早期治疗
  3. 真实评测 r5 3400g和r5 5600g 选哪个
  4. python基于值的自动内存管理方式_为什么说Python采用的是基于值的内存管理模式...
  5. 计算机三级(网络技术)笔记
  6. 怎么将wxid的乱码号转换??
  7. 手机和汽车将是未来最有爆发力的两种消费品
  8. java 申明对象和new一个对象如: People peple和People people=new People()
  9. mui初级入门教程(一)— 小白入手mui的学习路线
  10. Lodop分页打印每页显示页头页尾