头文件:#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. system占用80端口的问题

    80端口被占用的问题 首先可以看看是不是iis占用了.如果是的话.修改为其他端口即可. 如果不是.. 在cmd中输入命令netstat -ano 查看是不是system占用了80端口? 如果是syst ...

  2. css中的大小、定位、轮廓相关属性

    css中的大小.定位.轮廓相关属性 1.通过height.width属性控制组件大小 height:高度,可以设置任何有效的距离值: width:宽度,可以设置任何有效的属性值: max-height ...

  3. html页面元素事件丢失

    前段时间做网站包括最近用mvc做oa都发现这个奇怪现象,就是页面加载完毕后页面元素事件(比如按钮点击.复选框change)一切正常,但是当执行查询或者其他操作后页面事件丢失.具体原因暂没有时间分析,现 ...

  4. Dos学习笔记(3)attrib命令

    今天和昨天一直在摸索这个命令觉得这个命令为什么改变不了文件夹的属性, 因为我试着用attrib +r /s 去修改子文件夹的时候发现没用,然后如果输入 attrib +r /d 又提示说/d需要和/s ...

  5. Java数据类型、变量、运算符、语句。

    数据类型:整型 int long short byte小数 double float 字符 char 转义字符:\'(单引号字符) \\(反斜杠字符) \n(换行) \r(回车) \t(水平制表符,相 ...

  6. 使用gnucash查看任意时间段内的所有者权益变动表

    gnucash默认会以当年的会计账期显示所有者权益变动表 如果要看指定时间的所有者权益变动表,需要这样做 打开所有者权益变动表 点击上面的[选项] 如图 在常规中自行选择日期 确定后就能够看到指定时间 ...

  7. ✡ leetcode 171. Excel Sheet Column Number 字母转换为数字 --------- java

    Related to question Excel Sheet Column Title Given a column title as appear in an Excel sheet, retur ...

  8. Android 数据处理之Webapi OAuth2.0

    前面通过.net Webapi搭建了数据访问及处理平台,以下介绍如何通过Android来访问Webapi的数据. Android的常用的网络访问方式是使用HttpClient和HttpURLConne ...

  9. WPF 重新启动该程序

    // Restart current process Method 1 System.Windows.Forms.Application.Restart(); Application.Current. ...

  10. CentOS 6 到 CentOS 7

    redhat提供了一个redhat-upgrade-tool的升级工具: [1]配置软件源   # vim /etc/yum.repos.d/upgrade.repo [upgrade] name=u ...