头文件:#include <math.h>

atan2() 函数用于求 y / x 的反正切值。其原型为:
    double atan2(double y, double x);

【参数】x为坐标的X轴值,y为坐标的Y轴值。如果 x 和 y 的值都为 0,将会导致错误。

atan2() 求坐标 x 和 y 的坐标的反正切值。反正切的角度值等于 X 轴与通过原点和给定坐标点的直线之间的夹角。结果以弧度表示,并介于 -π 到 π 之间。

在三角函数中,两个参数的函数 atan2() 是正切函数的一个变种。对于任意不同时等于 0 的实参数x和y,atan2(y,x) 所表达的意思是坐标原点为起点,指向(x,y)的射线在坐标平面上与x轴正方向之间的角的角度。当 y>0 时,射线与 x 轴正方向的所得的角的角度指的是 x 轴正方向绕逆时针方向到达射线旋转的角的角度;而当 y<0 时,射线与 x 轴正方向所得的角的角度指的是 x 轴正方向绕顺时针方向达到射线旋转的角的角度。

【返回值】返回以弧度表示的反正切值,范围为  -π/2 至 π/2 之间。

弧度与角度的关系为:
弧度 = 180 / π 角度
角度 = π / 180 弧度

使用 rtod( ) 函数可以将弧度值转换为角度值。

注意,使用 GCC 编译时请加入-lm。

例如,求 x=-10.000000, y=10.000000 的反正切。

  1. #include <stdio.h>
  2. #include <math.h>
  3. #define PI 3.14159265
  4. int main ()
  5. {
  6. double x, y, result;
  7. x = -10.0;
  8. y = 10.0;
  9. result = atan2 (y,x) * 180 / PI;
  10. printf ("The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result );
  11. return 0;
  12. }

输出结果:
The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees.

又如,求两个角度的余弦值并输出。

  1. #include<stdio.h>
  2. #include<math.h>
  3. int main(void)
  4. {
  5. double result;
  6. double p_X = 100.0,p_Y = 50.0;
  7. result =atan2(p_Y,p_X); // 求反正切值
  8. printf("atan2(%lf,%lf) is %lf\n",p_X,p_Y,result); // 格式化输出
  9. return 0;
  10. }

运行结果
atan2(100.000000,50.000000)  is  0.463648

程序先定义3个变量,一个结果变量result,两 个坐标变量p_X和p_Y。语句result=atan2(p_Y,p_X);的作用是求出以p_Y为X轴坐标,p_X为Y轴坐标的反正切值,结果赋值于 result,最后使用printf()函数输出显示。

C语言atan2()函数:求y/x的反正切值的更多相关文章

  1. C 语言 clock() 函数,例:计算多项式值

    C 语言 clock() 函数,例:计算多项式值 /** * clock(): 捕捉从程序开始运行到 clock() 被调用时所耗费的时间. * 这个时间单位是 clock tick, 即" ...

  2. matlab中fminbnd函数求最小或者组大值

    clc; clear all; close all; fx = @(x) -(0.4./sqrt(1 + x.^2) - sqrt(1+x.^2) .* (1- 0.4./(1 + x.^2))+x) ...

  3. Go语言 5 函数

    文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ 今天,我们来学习Go语言编程的第五章,函数.首先简单说一下函数的概念和作用.函数是一 ...

  4. 06--C语言数学函数

    在使用C语言数学函数时候,应该在该源文件中使用以下命令行: #include <math.h> 或 #include "math.h",这里的<>跟&quo ...

  5. 3016C语言_函数

    第六章 函数 6.1 函数概述 定义 函数:是具有一定功能的一个程序块:是C语言的基本组成单位. 在前面各章的例子及读者自己编写的C语言程序中都用到了以“main“开头的主函数,并且在程序中频繁地调用 ...

  6. 【C语言】函数和自定义函数

    函数,我之前也提到过一点点内容.其实函数是很好理解的,但是写起来又十分麻烦. 一.     函数引入 我们知道,C源程序是由函数组成的.请看下面的简单函数例子 #include <stdio.h ...

  7. c语言中函数的简单介绍

    c语言中函数的介绍: 函数,简单的说就是代码的打包.存放在一个地方,当需要的时候调用. 函数分类: 1.无参无返回值函数 void func() 2.无参有返回值函数  int func() 3.有参 ...

  8. C语言之函数

    函数:为了完成某一项功能而编写的代码的集合. C语言中的函数可以分为内置和自定函数. 内置函数:C语言中已经定义过的函数,不需要 声明,可以直接调用. 常见的内置函数: 函数名 类库 说明 doubl ...

  9. Go语言中函数的实现

    Go 语言函数 函数是基本的代码块,用于执行一个任务. Go 语言最少有个 main() 函数. 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务. 函数声明告诉了编译器函数的名称,返回 ...

随机推荐

  1. String、Stringbuffer、StringBuilder的区别(转载)

    最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那 ...

  2. flex4

    今天发现了一个问题:昨天把序列号输入之后可以用了,但是再次打开软件之后还是要求输序列号的.遇到这种情况的朋友可以这样操作.打开C:\WINDOWS\system32\drivers\etc这个目录,修 ...

  3. MySQL初探

    慕课网http://www.imooc.com/learn/122 课程学习笔记     修改MySQL提示符        shell>mysql --prompt 提示符        my ...

  4. http://note.youdao.com/yws/public/redirect/share?id=2bc2dc6c7df6013e9f8106c005da999a&type=false

    Welcome to MarkdownPad 2 MarkdownPad is a full-featured Markdown editor for Windows. Built exclusive ...

  5. linux创建静态库

    [1]新建源程序staticlib.c /************************************************************************* > ...

  6. Object有哪些公用方法?

    protected Object clone() 创建并返回此对象的一个副本.public boolean equals(Object obj) 指示其他某个对象是否与此对象"相等" ...

  7. win10 localhost 解析为 ipv6地址 ::1 的解决办法

    今天遇到个奇怪的问题,localhost 访问时提示 not found 404,但是有127.0.0.1可以访问.最后找到原因,是因为 windows 把 localhost 解析为 ipv6 地址 ...

  8. ftplib模块

    Python中的ftplib模块 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件 FTP的工作流程及基本操作可参考协议RFC95 ...

  9. awk 的使用

    awk [-F field-separator] 'commands' input-file(s) 其中,commands 是真正awk命令,[-F域分隔符]是可选的.input-file(s) 是待 ...

  10. 转载:详细解析Java中抽象类和接口的区别

    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和int ...