您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言atan2()函数:求y/x的反正切值

时间:12-30来源:作者:点击数:

头文件:#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 的反正切。

#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int main ()
{
    double x, y, result;
    x = -10.0;
    y = 10.0;
    result = atan2 (y,x) * 180 / PI;
    printf ("The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result );
    return 0;
}

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

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

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

运行结果: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()函数输出显示。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门