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

cos和sin在C中给出了错误的答案,c,trigonometry,C,Trigonometry,嗨,我正试图通过在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;

嗨,我正试图通过在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_窦(30、.3、.6)产生.669616

如果这不是提问者所观察到的,那么他们的代码中还有一些其他问题,这些问题超出了他们在问题中所揭示的内容


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

检查公式,然后检查数据类型。您希望的O/p是什么?你收到了什么订单?这里没有魔术师能猜到这一点。你使用的是浮点数,所以可能会有效果。读得好:你想重新计算什么?拒绝。这是一道数学题,与编程无关。欢迎帮助!首先,x和y是平面上的数字,例如(1,0),然后我加上-90°,然后用这些树的数字(-90,1,0)调用这个函数,有两个函数,一个给我新的x值,另一个给y值,这就是上面的函数。嗨,谢谢,它是这样工作的:x_1=x_0*cos(Alpha)-y_0*sin(Alpha)和y_1=x_0*sin(Alpha)+y_0*cos(Alpha)。