与えられた多角形 P が凸かどうかを判定する.一周回ってみて,右向きの辺がないことを確かめればよい.
O(n).
#define curr(P, i) P[(i) % P.size()] #define next(P, i) P[(i+1) % P.size()] #define prev(P, i) P[(i+P.size()-1) % P.size()] bool isconvex(const polygon &P) { for (int i = 0; i < P.size(); ++i) if (ccw(prev(P, i), curr(P, i), next(P, i)) > 0) return false; return true; }
Last Modified: 2007.08.09 23:42:52.