Тригонометрия
Представленные ниже функции могут заменить вам всетригонометрические функции библиотеки math (кроме atan).
Листинг C++
const double eps = 1e-8;
const double pi = 3.141592653589793238462643383;
double _abs (double x)
{
return x < 0 ? - x : x;
}
double _sin (double x, double _eps = eps)
{
if (x < 0) return - _sin (- x);
if (x >= pi) return - _sin (x - pi);
double sum = 0.0;
double elem = x;
int n = 1;
while (_abs (elem) > _eps)
{
sum += elem;
elem *= (- 1.000) * x * x / (double)(++ n) / (double)(++ n);
}
return sum;
}
double _cos (double x, double _eps = eps)
{
return _sin (pi * 0.5 - x);
}
double _tan(double x)
{
return _sin (x) / _cos (x);
}
double _asin(double x)
{
return atan(x/sqrt(1-x*x));
}
double _acos(double x)
{
return atan(sqrt(1-x*x)/x);
}
15.06.2007, 14:59
По всем вопросам обращаться: rumterg@gmail.com