int comp (const point &A, const point &B)
{
    int cnt = A.ccw(B, reference_point);

    if (cnt == 0)
    {
        float dist_B = reference_point.distance (B);
        float dist_A = reference_point.distance (A);

        return (dist_A < dist_B);
    }

    return (cnt > 0);
}
Ejemplo n.º 2
0
	circle(const point& p, const point& q, const point& r) {
		auto a = 2 * (q.x - p.x);
		auto b = 2 * (q.y - p.y);
		auto c = 2 * (r.x - p.x);
		auto d = 2 * (r.y - p.y);

		auto det = a * d - b * c;

		auto k1 = (q.x * q.x + q.y * q.y) - (p.x * p.x + p.y * p.y);
		auto k2 = (r.x * r.x + r.y * r.y) - (p.x * p.x + p.y * p.y);

		auto cx = (k1 * d - k2 * b) / det;
		auto cy = (a * k2 - c * k1) / det;

		center = point(cx, cy);
		radius = center.distance(p);
	}
Ejemplo n.º 3
0
int findNearestBludger(point p){

    int res = -1;
    float minDist = 100000;
    
     REP(i, n){
         if(obj[i].type[0] == 'B' ){
             float dist = p.distance(obj[i].loc);
             if(dist < minDist){
                 res = i;
                 minDist = dist;
             }
         }
     }

     return res;

}
Ejemplo n.º 4
0
 int in(point p){
     return(c.distance(p)<r*r);
 }