-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.1415 ではなく、3.1415926535897932384626433 など、より正確な π の値を使用するようにコードを変更する必要があります。

于 2013-01-12T14:16:28.143 に答える