У меня есть класс который реализует интерфейс 
IComparer, так же у меня есть массив который содержит в себе элементы созданного мною типа данных 
Point. Класс 
Point содержит два поля: абсциссу и ординату. Моя задача отсортировать точки в этом массиве по возрастанию против часовой стрелки начиная с точки (1, 0).  Что я сделал: я определил градусную меру точек с помощью функции 
Math.Atan2(), затем с помощью функции 
CompareTo() я сравнил точки в массиве, но проблема в том что когда я прошел дебаггером по программе я обнаружил что 
Atan2() определяет градусную меру точки по часовой стрелке, то есть точка с координатами (1, 0) определяет как 180 градусов, а точка с координатами (-1, 0) как 0 градусов, хотя должно быть все наоборот. 
Как должен быть отсортирован массив: (1, 0)  (0.01, 1)  (0, 1)  (-1, 0)  (0, -1)
Код:
public class Point
    {
        public double X;
        public double Y;
    }
    public class ClockwiseComparer : IComparer<Point>
    {
        public int Compare(Point point, Point point_2)
        {
            double angle1 = Math.Atan2(point.Y, point.X) * (180 / Math.PI);
            double angle2 = Math.Atan2(point_2.Y, point_2.X) * (180 / Math.PI);
            return angle1.CompareTo(angle2);
        }
    }
        public static void Main()
        {
            var array = new[]
            {
                new Point { X = 1, Y = 0 },
                new Point { X = -1, Y = 0 },
                new Point { X = 0, Y = 1 },
                new Point { X = 0, Y = -1 },
                new Point { X = 0.01, Y = 1 }
            };
            Array.Sort(array, new ClockwiseComparer());
            foreach (Point e in array)
                Console.WriteLine("{0} {1}", e.X, e.Y);
        }