回答:
放物線を使用して、正弦関数の値を近似できます。これには、TaylorSeriesまたはMaclaurinSeriesに基づく他の高速近似では通常そうではない、厳密に-pi / 2およびpi / 2に根を持つという利点があります。
public float Sin(float x)
{
const float B = 4 / PI;
const float C = -4 / (PI*PI);
return -(B * x + C * x * ((x < 0) ? -x : x));
}
以下は、実際のサイン関数との比較です。
sin()関数への入力値の範囲はどのくらいですか?あなたがそれを使用しているものについては、それらが制限されているように聞こえます。つまり、値を事前に計算することができます。たとえば、入力値を最も近い次数に切り上げる場合、可能な値は360のみです。事前に計算してテーブルに保存するだけです。
小数点以下1桁など、少し多くの値が必要な場合は、テーブルから補間することができます-perlin noiseには詳しくありませんが、「noise」という言葉は、高精度を必要としないことを示しているようです。:)(3600エントリは大きなスペースではなく、より大きなテーブルを作成することもできます)。
あなたもこれを読みたいかもしれません、それは速いサインとコサイン近似を持っています