Respostas:
Você pode usar uma parábola para aproximar o valor da função seno. Isso tem a vantagem de ter as raízes exatamente -pi / 2 e pi / 2, o que geralmente não é o caso de outras aproximações rápidas baseadas no TaylorSeries ou 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));
}
Aqui está uma comparação com a função seno real:
Qual é o intervalo de valores de entrada para sua função sin () ? Para o que você está usando, parece que eles podem ser limitados, o que significa que você pode pré-calcular os valores . Por exemplo, se você estiver arredondando os valores de entrada para o grau mais próximo, terá apenas 360 valores possíveis - basta pré-calculá-los e armazená-los em uma tabela.
Se você precisar de um pouco mais de valor, digamos com uma casa decimal, poderá interpolar da tabela - não estou familiarizado com o ruído permanente , mas a palavra "ruído" parece indicar que não exige alta precisão. :) (Você também pode criar uma tabela maior, 3600 entradas não são muito espaço).
Você também pode ler isso , pois possui aproximações rápidas de seno e cosseno