00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "../tool/math_tools.h"
00023 #include <math.h>
00024
00025
00026 const double EPS_ZERO = 0.05;
00027
00028
00029 double Deg2Rad (int degre){
00030 return ((double)degre)*M_PI/180;
00031 }
00032
00033 int Rad2Deg(double rad) {
00034 return int(rad*180/M_PI);
00035 }
00036
00037
00038 template <class T>
00039 T BorneTpl (const T &valeur, const T &min, const T &max){
00040 if (valeur < min)
00041 return min;
00042 else if (max < valeur)
00043 return max;
00044 else
00045 return valeur;
00046 }
00047
00048 long BorneLong (const long &valeur, const long &min, const long &max){
00049 return BorneTpl (valeur, min, max);
00050 }
00051
00052 double BorneDouble (const double &valeur, const double &min, const double &max){
00053 return BorneTpl (valeur, min, max);
00054 }
00055
00056
00057 double InverseAngle (const double &angle){
00058 if (angle < 0)
00059 return -M_PI - angle;
00060 else
00061 return M_PI - angle;
00062 }
00063
00064
00065 double InverseAngleRad (const double &angle){
00066 if (angle < 0)
00067 return -M_PI - angle;
00068 else
00069 return M_PI - angle;
00070 }
00071
00072
00073 double InverseAngleDeg (const double &angle){
00074 if (angle < 0)
00075 return -180 - angle;
00076 else
00077 return 180 - angle;
00078 }
00079
00080 double AbsReel (const double x){
00081 return fabs(x);
00082 }
00083
00084 bool EgalZero (const double x){
00085 return AbsReel(x) <= EPS_ZERO;
00086 }
00087