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); }
private static double GetX(double curvatureRate, double length) { if (length == 0) { // even if curvatureRate is NaN return(0); } return(FresnelIntegrals.C(length * curvatureRate) / curvatureRate); }
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)); }