예제 #1
0
        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);
                }
            }
        }