BezierFitting.Fitting.CalcDeviation C# (CSharp) Method

CalcDeviation() public static method

public static CalcDeviation ( List data, Bezier b ) : double
data List
b Bezier
return double
        public static double CalcDeviation(List<PointD> data, Bezier b)
        {
            double sum = 0.0;
            foreach (var p in data)
            {
                double min_distance = double.MaxValue;
                for (double t = 0; t < 1.0; t += sample_interval)
                {
                    double bx = Bezier(b.Point1.X, b.Point2.X, b.Point3.X, b.Point4.X, t), by = Bezier(b.Point1.Y, b.Point2.Y, b.Point3.Y, b.Point4.Y, t), dx = bx - p.X, dy = by - p.Y;
                    double v = dx * dx + dy * dy;
                    if (v < min_distance)
                    {
                        min_distance = v;
                    }
                }
                sum += min_distance;
            }
            return sum / data.Count;
        }