-4

嗨,我正在尝试通过在 C 中使用 sin 和 cos 来找到 ax 和 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;
}
4

1 回答 1

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。

于 2013-01-12T14:16:28.143 回答