示例#1
0
        private static double GetY(double curvatureRate, double length)
        {
            if (length == 0)
            {
                // even if curvatureRate is NaN
                return(0);
            }

            return(FresnelIntegrals.S(length * Math.Abs(curvatureRate)) / curvatureRate);
        }
示例#2
0
        private static double GetX(double curvatureRate, double length)
        {
            if (length == 0)
            {
                // even if curvatureRate is NaN
                return(0);
            }

            return(FresnelIntegrals.C(length * curvatureRate) / curvatureRate);
        }
示例#3
0
        private static Point GetPoint(double curvatureRate, double length)
        {
            var c = 0.0;
            var s = 0.0;

            if (Math.Abs(length) >= double.Epsilon)
            {
                FresnelIntegrals.Evaluate(length * Math.Abs(curvatureRate), out c, out s);
                c = c / Math.Abs(curvatureRate);
                s = s / curvatureRate;
            }

            return(new Point(c, s));
        }