先判断是不是N多边形,求一下凸包,如果所有点都用上了,那么就是凸多边形
判断圆是否在多边形内,
先排除圆心在多边形外的情况
剩下的情况可以利用圆心到每条边的最短距离与半径的大小来判断
#include#include #include #include #include #include #include
using namespace std;const double eps=1e-8;const double pi=2*asin(1.0);struct point{ double x,y; double alpha; double len2; int id;} p[200];int T,n;vector v;vector ans;double MinY;int MinId;bool cmp(const point &a, const point &b){ if(fabs(a.alpha-b.alpha) =b*b+c*c) return b; if(b*b>=a*a+c*c) return a; double l=(a+b+c)/2; double s=sqrt(l*(l-a)*(l-b)*(l-c)); return 2*s/c;}bool check(point T){ double sum=0; for(int i=0;i