public override double Height(double x) { double H = _h + _offsetL; double ch = Chord; if (Math.Abs(x) == ch) { return(H); } else if (Math.Abs(x) > ch) { return(0); } else { double R = (_h * _h + ch * ch) / (2 * _h); double b = 2 * (R - _h); double c = x * x - 2 * R * _h + _h * _h; Tuple <double, double> r = BasicLib.Quadratic(1, b, c); if (r.Item1 > 0) { return(H - r.Item1); } else { return(H - r.Item2); } } }