namespace Math
{
- void FitParabola(double x1, double y1, double x2, double y2, double x3, double y3,
- double& a, double& b, double& c, double& xapex, double& yapex);
+ inline void FitParabola(double x1, double y1, double x2, double y2, double x3, double y3,
+ double& a, double& b, double& c, double& xapex, double& yapex)
+ {
+ assert(x1!=x2 && x1!=x3 && x2!=x3);
+
+ double h31 = (y3-y1)/(x3-x1);
+ double h21 = (y2-y1)/(x2-x1);
+
+ a = (h31-h21)/(x3-x2);
+ b = h21 - a*(x2+x1);
+ c = y1 - a*x1*x1 - b*x1;
+
+ xapex = -b/2/a;
+ yapex = c - b*b/4/a;
+ }
}
#endif