public static Intersection GetLineIntersection(Line line1, Line line2) { // Doc 참조할 것. // (line2 - line1) x (line2Direction) / line1Direction x line2Direction double determinant = Vector2.Cross(line1.Direction, line2.Direction); // 두 직선이 평행한 경우이다. if (UMath.IsZero(determinant)) { return(new Intersection(true, Vector2.Zero)); } double p = Vector2.Cross(line2.InPoint - line1.InPoint, line2.Direction) / determinant; Vector2 intersection = line1.InPoint + p * line1.Direction; return(new Intersection(false, intersection)); }