static void FindFarthestPoint(List <PointF> points, PointF A, PointF B)
        {
            float  distance   = 0;
            PointF upperPoint = new PointF();

            foreach (var point in points)
            {
                float lineDist = upperDistance(A, B, point);
                if (lineDist > distance)
                {
                    distance   = lineDist;
                    upperPoint = point;
                }
            }

            if (distance == 0)
            {
                resultHull.Add(A);
                resultHull.Add(B);
                QuickHullGraphics.DrawLines(resultHull);
                return;
            }

            FindFarthestPoint(points, A, upperPoint);
            FindFarthestPoint(points, upperPoint, B);
        }