jueves, 20 de noviembre de 2008

Aproximación cuadrática de Sin(x)



Para algunas aplicaciones en las que se necesite calcular muchos senos y cosenos por segundo (Juegos, etc) calcularlo es algo muy complicado. Por lo tanto hoy les traigo una aproximación cuadrática para medio período. La funcion es:

y = -0.405282839*(x)*(x-3.1416)

Esto permite acelerar muchisimo nuestras aplicaciones que usen operaciones trigonométricas. El problema es que hay que acordarse de tratar los angulos negativos y >PI.

Código en c++ adaptable a otros lenguajes:

double sin(double rad){
if(rad<0) return -sin(-rad);
if(rad>2*3.1416) return sin(rad%2*3.1416);
if(rad>3.1416) return -(-0.405282839*rad*(rad-3.1416));
return -0.405282839*rad*(rad-3.1416);
}

No hay comentarios: