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); }