blob: 7e9d1de0140e7cd4a6ab8bb4bd768388ccbdaf19 (
plain)
1
2
3
4
5
6
7
8
9
10
11
|
bool left(pt p) { return real(p) < 0 ||
(real(p) == 0 && imag(p) < 0); }
// counter clockwise, starting with "11:59"
void sortAround(pt p, vector<pt>& ps) {
ranges::sort(ps, [&](const pt& a, const pt& b){
if (left(a - p) != left(b - p))
return left(a - p) > left(b - p);
return cross(p, a, b) > 0;
});
}
|