Имеется выпуклый полигон имеющий 4 вершины. Надо отсортировать вершины так, чтобы они шли против часовой стрелки. Размышляю вот уже какое-то время и решения не вижу. Буду благодарен за совет.
Заранее спасибо
![beer :beer:](./images/smilies/beer.gif)
Code: Select all
typedef complex<double> V;
struct Before
{
Before(V c) : c(c) {}
V c;
bool operator()(const V& a, const V& b) const
{
return ((a-c)*conj(b-c)).imag() < 0;
}
};
void sort_poly(vector<V>& p)
{
sort(p.begin()+1, p.end(), Before(p[0]));
}