将度数转换为弧度以用于 C 中的三角函数
Conversion of Degrees to Radians for use in trig functions in C
我想用math.h的三角函数,用0,1,-1作为平面坐标系的符号标识。
cos(pi)*length = -1*length
sin(pi)*length = 0
但是math.h中的函数需要弧度值,而我有度数值。虽然这些可以在公式中转换,但我不知道它会影响答案的准确性,即 cos(pi) = -0.99999..
这会影响我的代码操作吗?
编辑:我该怎么做才能得到我想要的结果?
它们可能会通过您的 pi 的精度影响准确性 - 通常是最后一个单位。对于 cos 和 sin,|d f(x)/dx|小于一,因此您的值应该在相同的错误范围内。对于棕褐色,|d f(x)/dx|没有界限,所以一个小的输入变化可以产生一个大的输出变化。
如此小的更改是否会影响您的代码的运行在很大程度上取决于您的代码是否假设结果准确与否。如果您的代码对浮点值做出了错误的假设,那么它将失败,如果它允许对相等比较有一些小的容差,那么它就不会。
Will this affect the operations on my code?
当 与 degree/radians 之间的转换 完全 时,这不是问题。当然,这仅在角度为 +/- 0.0 时发生。
要使用三角函数并获得 精确 三角函数结果(或至少接近可以得到的最好结果),确保减少度数参数(mod 360
) 先转换为弧度。使用三角身份可以进一步改进:high precession and
我想用math.h的三角函数,用0,1,-1作为平面坐标系的符号标识。
cos(pi)*length = -1*length
sin(pi)*length = 0
但是math.h中的函数需要弧度值,而我有度数值。虽然这些可以在公式中转换,但我不知道它会影响答案的准确性,即 cos(pi) = -0.99999..
这会影响我的代码操作吗?
编辑:我该怎么做才能得到我想要的结果?
它们可能会通过您的 pi 的精度影响准确性 - 通常是最后一个单位。对于 cos 和 sin,|d f(x)/dx|小于一,因此您的值应该在相同的错误范围内。对于棕褐色,|d f(x)/dx|没有界限,所以一个小的输入变化可以产生一个大的输出变化。
如此小的更改是否会影响您的代码的运行在很大程度上取决于您的代码是否假设结果准确与否。如果您的代码对浮点值做出了错误的假设,那么它将失败,如果它允许对相等比较有一些小的容差,那么它就不会。
Will this affect the operations on my code?
当 与 degree/radians 之间的转换 完全 时,这不是问题。当然,这仅在角度为 +/- 0.0 时发生。
要使用三角函数并获得 精确 三角函数结果(或至少接近可以得到的最好结果),确保减少度数参数(mod 360
) 先转换为弧度。使用三角身份可以进一步改进:high precession and