21 MnParabola MnParabolaFactory::operator()(
const MnParabolaPoint& p1,
22 const MnParabolaPoint& p2,
23 const MnParabolaPoint& p3)
const {
34 double xm = (x1+x2+x3)/3.;
44 double a = y1/(dx12*dx13) - y2/(dx12*dx23) + y3/(dx13*dx23);
45 double b = -y1*(x2+x3)/(dx12*dx13) + y2*(x1+x3)/(dx12*dx23) - y3*(x1+x2)/(dx13*dx23);
46 double c = y1 - a*x1*x1 - b*x1;
52 return MnParabola(a, b, c);
55 MnParabola MnParabolaFactory::operator()(
const MnParabolaPoint& p1,
57 const MnParabolaPoint& p2)
const {
64 double y12 = p1.Y() - p2.Y();
66 double det = xx1-xx2 - 2.*x1*(x1-x2);
67 double a = -( y12 + (x2-x1)*dxdy1)/det;
68 double b = -( -2.*x1*y12 + (xx1-xx2)*dxdy1)/det;
69 double c = y1 - a*xx1 - b*x1;
71 return MnParabola(a, b, c);