嗨我想通过在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;
}
答案 0 :(得分:1)
鉴于提问者提供的数学公式,“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。