C语言atan2()函数:求y/x的反正切值
头文件:#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()函数输出显示。
C语言atan2()函数:求y/x的反正切值的更多相关文章
- C 语言 clock() 函数,例:计算多项式值
C 语言 clock() 函数,例:计算多项式值 /** * clock(): 捕捉从程序开始运行到 clock() 被调用时所耗费的时间. * 这个时间单位是 clock tick, 即" ...
- 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) ...
- Go语言 5 函数
文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ 今天,我们来学习Go语言编程的第五章,函数.首先简单说一下函数的概念和作用.函数是一 ...
- 06--C语言数学函数
在使用C语言数学函数时候,应该在该源文件中使用以下命令行: #include <math.h> 或 #include "math.h",这里的<>跟&quo ...
- 3016C语言_函数
第六章 函数 6.1 函数概述 定义 函数:是具有一定功能的一个程序块:是C语言的基本组成单位. 在前面各章的例子及读者自己编写的C语言程序中都用到了以“main“开头的主函数,并且在程序中频繁地调用 ...
- 【C语言】函数和自定义函数
函数,我之前也提到过一点点内容.其实函数是很好理解的,但是写起来又十分麻烦. 一. 函数引入 我们知道,C源程序是由函数组成的.请看下面的简单函数例子 #include <stdio.h ...
- c语言中函数的简单介绍
c语言中函数的介绍: 函数,简单的说就是代码的打包.存放在一个地方,当需要的时候调用. 函数分类: 1.无参无返回值函数 void func() 2.无参有返回值函数 int func() 3.有参 ...
- C语言之函数
函数:为了完成某一项功能而编写的代码的集合. C语言中的函数可以分为内置和自定函数. 内置函数:C语言中已经定义过的函数,不需要 声明,可以直接调用. 常见的内置函数: 函数名 类库 说明 doubl ...
- Go语言中函数的实现
Go 语言函数 函数是基本的代码块,用于执行一个任务. Go 语言最少有个 main() 函数. 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务. 函数声明告诉了编译器函数的名称,返回 ...
随机推荐
- Axis2使war包发布为WebService
首先 吐槽下 Axis2的Eclipse插件.不好用,而且局限性大.并且添加包的过程...会及其痛苦.(懂的自然懂) 而且 发布的aar文件,不能解压缩重新打包再压缩...尝试过添加 jar包,但报错 ...
- Linux 下编译安装MySQL
最近在研究Mysql,当然先要把它安装在机器上才行呀.记录下操作,加深记忆,也供以后参考. 准备工作: Linux版本:Redhat Linux 6.4 Mysql版本(安装包):mysql-5.6. ...
- 论SCRM系统对传统行业的冲击
SCRM(Social Customer Relationship Management)顾名思义是社会型客户关系管理系统,这在当前的电子商务领域是一个创新的概念,由于社交媒体(Social Medi ...
- hiho一下20周 线段树的区间修改
线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题改了改,又出给了 ...
- Linear Algebra lecture8 note
Compute solution of AX=b (X=Xp+Xn) rank r r=m solutions exist r=n solutions unique example: 若想方程有解 ...
- win32程序通过LPCREATESTRUCT中的lpCreateParams传递参数给窗口过程函数
win32窗口程序中如果需要给窗口过程函数传递自定义参数,可以通过LPCREATESTRUCT结构体中的lpCreateParams进行传递. 创建窗口实例函数: m_hWnd = CreateWin ...
- [leetcode]Binary Tree Maximum Path Sum
Binary Tree Maximum Path Sum Given a binary tree, find the maximum path sum. The path may start and ...
- IOS 制作启动画面
启动方式简述 IOS 8 及之前: Launch Images Source方式, IOS8 及之后: 1, Launch Images Source方式 : 2 , LaunchScreen. ...
- 注册noip.com动态域名的步骤
1.先打开这个网址 http://www.noip.com/ 2.点击页面右上绿色的Sing Up,进行注册 3.会出现这个页面,把这些填上 Create my hostname later这一项不打 ...
- 如何在IDEA 中使用Git
1,下载最新的 git 包 地址: https://git-scm.com/download/win 下载便携版 64,32 根据个人爱好 2,解压后随便放个位置即可,例如图: (不太建议使用它自 ...