Example #1
0
        private static IEnumerable <Point> CheckPointsNotOnOneLine(Point[] points)
        {
            List <Vector> vectors = new List <Vector>();

            for (int i = 1; i < points.Length; i++)
            {
                vectors.Add(points[i] - points[i - 1]);
            }
            vectors.Add(points[0] - points[points.Length - 1]);

            bool haveSameAngle = DoubleUtils.CloseToEqual(vectors.Select(v => v.Angle).ToArray());

            if (haveSameAngle)
            {
                throw new ArgumentOutOfRangeException(nameof(points), points, "All points are on the same line");
            }
            return(points);
        }