51单片机怎样计算sin(x);和cos(x);?x是我用编码器采集到的角度值,要根据这个值计算高度的,但是我用math.h中的sin(x);这类的方法直接计算,算出来的是错误的值啊,这是怎么回事啊?难道不能这样直

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/10 23:27:37
51单片机怎样计算sin(x);和cos(x);?x是我用编码器采集到的角度值,要根据这个值计算高度的,但是我用math.h中的sin(x);这类的方法直接计算,算出来的是错误的值啊,这是怎么回事啊?难道不能这样直
xRn@/!0B bߟ %M"Q@J^)Ÿ 4M MMmF1|B~b*;̽{'x4 kPԤVi7RuO*m[_ VH4W#)Vq-do\mm?$(m@Tnm/hÝois$8do-Ya 1>0ʙQ7'nݥ_ p&6w!`ϳG2Z 3[ 3[\!Szpn,RJ$7"Whwpz- -zÚg]Kh$.g;-q*5b· pݿoDur>6 'b*ֹpͥF`"X ؽFw1^&{e2ާ>vdx.\[A5{%m|ǶLTR`by$P22!Gx>HK?v$R1O.`

51单片机怎样计算sin(x);和cos(x);?x是我用编码器采集到的角度值,要根据这个值计算高度的,但是我用math.h中的sin(x);这类的方法直接计算,算出来的是错误的值啊,这是怎么回事啊?难道不能这样直
51单片机怎样计算sin(x);和cos(x);?
x是我用编码器采集到的角度值,要根据这个值计算高度的,但是我用math.h中的
sin(x);这类的方法直接计算,算出来的是错误的值啊,这是怎么回事啊?难道不能这样直接用吗?
就是我算个最简单的
float A=0;
long int Lx=0;
A=sin(30);
Lx=(int)((double)A*10)
按理说 sin(30);=0.5,那么A的值是0.5 Lx=5,但是实际算出来的值根本不是这样啊 很大一个值,

51单片机怎样计算sin(x);和cos(x);?x是我用编码器采集到的角度值,要根据这个值计算高度的,但是我用math.h中的sin(x);这类的方法直接计算,算出来的是错误的值啊,这是怎么回事啊?难道不能这样直
三角函数的计算是使用的弧度(rad),如果你得到的角度单位是度(deg),需要将deg转换为rad才能用三角函数计算.
1rad=180/π,所以任意度数x转换为弧度就是x*π/180.