public static boolean containsPoint(Segment s, Point P) {
		return collinear(P, s.P, s.Q) && 
			   Math.min(s.P.x, s.Q.x) <= P.x && P.x <= Math.max(s.P.x, s.Q.x) &&
			   Math.min(s.P.y, s.Q.y) <= P.y && P.y <= Math.max(s.P.y, s.Q.y);
	}