cos和sin在C中给出错误的答案



嗨,我试图通过在C中使用sin和cos来找到x和y方向,我已经包含了math.h和编译-lm。我知道"rad"给出了正确的结果,但下一行没有,我已经盯着这个几个小时了,在这里搜索问题,有人能看出这有什么问题吗?

double cos_sinY(int cos_sinus, double x, double y)
{
    double rad, y_value, pi = 3.1415;//8979323846
    rad = (double)cos_sinus/180*pi;
    y_value = x*(sin(rad))+y*(cos(rad));
    return y_value;
}

给定提问者提供的数学公式"x_1 = x_0*cos(Alpha) - y_0*sin(Alpha), y_1 = x_0*sin(Alpha) + y_0*cos(Alpha)",我用几个值测试了问题中的代码。在每种情况下,代码都生成了我所期望的值。

这个公式是平面上旋转点的公式。旋转的方向是数学家认为是正的(逆时针,(1,0)旋转90度是(0,1))。

示例:cos_sinus(30, .3, .6)产生。669616.

如果这不是提问者观察到的,那么在他们的代码中有一些其他的问题,而这些问题超出了他们在问题中所披露的。

应该修改代码以使用更精确的π值,例如3.1415926535897932384626433,而不是3.1415。

相关内容

最新更新