将度数转换为Radians以用于C中的trig函数

时间:2016-03-16 14:55:37

标签: c math sin operations cos

我想使用math.h的三角函数将0,1,-1用作平面坐标系的符号标识符。

cos(pi)*length = -1*length
sin(pi)*length = 0

但是math.h中的函数需要弧度值,而我有度数值。虽然这些可以在公式中转换,但我不知道它会影响答案的准确性,即cos(pi)= -0.99999 ..

这会影响我的代码操作吗?

编辑:我能做些什么来获得理想的结果?

2 个答案:

答案 0 :(得分:1)

它们可能会影响准确性,因为你的精确度通常是最后一个单位。对于cos和sin,| d f(x)/ dx |小于1,所以你的值应该在同一个错误中。对于tan,| d f(x)/ dx |没有界限,所以一个小的输入变化可以产生很大的输出变化。

这些小的更改是否会影响代码的运行在很大程度上取决于您的代码是否假定结果是否完整。如果你的代码对浮点值做出错误的假设,那么它将失败,如果它允许在相等比较上有一些小的容差,那么它就不会。

答案 1 :(得分:1)

  

这会影响我的代码操作吗?

当度/弧度之间的转换完全时,不是问题。当然,这仅在角度为+/- 0.0时发生。

使用trig函数并使用度数参数得到精确三角函数结果(或者至少差不多一样),确保度数参数先减少(mod 360)然后转换为弧度。使用trig标识可以进一步改进:high precessionSin and Cos