c语言中反正切函数怎么求110度正切值?

在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&&atan(1.0)*180/PI;//45&
cout&&atan2(1.0,1.0)*180/PI;//45& 第一象限
cout&&atan2(-1.0,-1.0)*180/PI;//-135&第三象限
后两个斜率都是1 但是atan只能求出一个45&
例2:斜率是-1的直线的角度
cout&&atan(-1.0)*180/PI;//-45&
cout&&atan2(-1.0,1.0)*180/PI;//-45& y为负 在第四象限
cout&&atan2(1.0,-1.0)*180/PI;//135& x为负 在第二象限
常用的不是求过原点的直线的夹角 往往是求一个线段的夹角 这对于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&&atan2(5.0,5.0)*180/PI;//45&
阅读(...) 评论()人人网 - 抱歉
哦,抱歉,好像看不到了
现在你可以:
看看其它好友写了什么
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&c语言,已知正切值如何求角度已知tanA,求和求A的角度和弧度,代码怎么写?谢谢
C语言有反三角函数的,比如:float angle,pi_pi_angle=atan(tanA);//弧度angle=pi_angle*180/3.14159;//角度,另注:反正弦余弦函数类似,asin,acos
为什么我找到一个答案是
angle = atan(1);
printf("angle = %f\n", angle);
为什么是double不是float,而且printf又用的是%f,f不是float吗?这样不会出错?
额,你刚学C语言的吧?double是双精度类型的浮点数,float是单精度的浮点数,意思就是double类型的数小数点后有更多位,计算更精确,而在实际输出时,%f的意思是以单精度浮点数输出,如果你要指定输出小数点后几位的话,可以用这种格式,%.7f,就是输出7位小数。多看看书!!!
知道了,谢谢!最后一个问题,如果我要用
#define PI 3.141593
可以写在中间吗?还是一定要写在最开始?
一般写在main函数上方,方便寻找,写在中间也可以!
为您推荐:
其他类似问题
扫描下载二维码算法(10)
linux(21)
手算开方是我们初中时期就学习的知识,以前学习过现在复习下。
以√200 为列
一般我们以前得出的结论是:10&√2
如今以C为列,不可能显示这样的方式,所以要有详细的计算方式,如下:
以个位开始两为为一个断,200=2,00,后面有小数点的部分没计算一位曾加两个0
1.用除法运算,以一个数的平方为主,1*1=1,2*2=4,把200中的2提取出来进行计算,1&2&4 所以选择1,余数为1
2.拿出两个零则被除数为100,最麻烦的就是怎么去定义一个除数,下一位除数总是等会前面的商乘以20+试商,前面的商为1,则除数=(1*20+x)*x
 x代表的是试商,即(1*20+4)*4=96&=100,则试的结果是4,则余数是100-96=4
3.又拿出两个0,则被除数是400,定义一个除数,除数=(14*20+x)*x 试商=(14*20+1)*1,即(14*20+1)*1=281&=400测试结果为1,则余数
 400-281=119,记住14是怎么来的,是前面所有的商
4.又拿出两个0,则被除数是11900,定义一个除数,除数=(141*20+x)*x 试商=(141*20+4)*4,即(14*20+4)*4=281&=11312测试结果为4&
就以截取小数点后面两位,结果=14.14
C的计算方式
#include &stdio.h&
#include &math.h&
#define RAD_TO_DEG (180/(4*atan(1)))
//弧度计算成度的方法
void main(){
double magnitude=0;
double angle=0;
magnitude=sqrt(x*x+y*y); //200开方
angle=RAD_TO_DEG * atan2(x,y); //计算正切值
printf(&%f /t %f&,magnitude,angle);
&掩饰结果:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:36515次
排名:千里之外
原创:33篇
转载:19篇
(1)(1)(4)(2)(7)(4)(4)(13)(16)}

我要回帖

更多关于 c语言正切函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信