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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 20:17:09
51单片机怎样计算sin(x);和cos(x);?x是我用编码器采集到的角度值,要根据这个值计算高度的,但是我用math.h中的sin(x);这类的方法直接计算,算出来的是错误的值啊,这是怎么回事啊?

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.