@Override
		public int compare(Point p1, Point p2) {
			int det = (p1.x - root.x) * (p2.y - root.y) - (p2.x - root.x) * (p1.y - root.y);
			if (det == 0) {
				int dis1 = Math.abs((p1.x - root.x) * (p1.x - root.x) + (p1.y - root.y) * (p1.y - root.y));
				int dis2 = Math.abs((p2.x - root.x) * (p2.x - root.x) + (p2.y - root.y) * (p2.y - root.y));
				return dis1 < dis2 ? -1 : dis1 == dis2 ? 0 : 1;
			}
			return det > 0 ? -1 : 1;
		}