public static bool PointOnRay(Point p, Point a, Point b)
        {
            if (a.Equals(b))
            {
                return(true);
            }
            if (a.Equals(p))
            {
                return(true);
            }
            var q = a.VectorTo(p).Normalize();
            var w = a.VectorTo(b).Normalize();

            return(q.Equals(w));
        }
        public static double GetAngle(Point a, Point b, Point c)
        {
            Point  vecBA    = b.VectorTo(a);
            Point  vecBC    = b.VectorTo(c);
            double CP       = CrossProduct(vecBA, vecBC);
            double DP       = DotProduct(vecBA, vecBC);
            double radAngle = Math.Atan2(CP, DP);

            if (radAngle < 0)
            {
                radAngle += Math.PI * 2;
            }

            double degAngle = radAngle * 180 / Math.PI;

            return(degAngle);
        }