Ответы:
Вы можете использовать параболу, чтобы приблизить значение функции синуса. Это имеет то преимущество, что корни имеют значения точно -pi / 2 и pi / 2, что обычно не имеет место в случае других быстрых приближений, основанных на TaylorSeries или MaclaurinSeries .
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 возможных значений - просто предварительно вычислите их и сохраните в таблице.
Если вам нужно немного больше значений, скажем, с одним десятичным знаком, вы можете интерполировать из таблицы - я не знаком с перлин-шумом , но слово «шум», кажется, указывает на то, что он не требует высокой точности. :) (Вы также можете просто сделать таблицу большего размера, 3600 записей не много места).
Вы можете прочитать это тоже, это есть быстрый синус и косинус приближения