//两圆关系:
/* 两圆:
相离: return 1;
外切: return 2;
相交: return 3;
内切: return 4;
内含: return 5;
*/
int CircleRelation(POINT p1, double r1, POINT p2, double r2)
{
double d = sqrt( (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y) );
if( fabs(d-r1-r2) < EP ) // 必须保证前两个if先被判定!
return 2;
if( fabs(d-fabs(r1-r2)) < EP )
return 4;
if( d > r1+r2 )
return 1;
if( d < fabs(r1-r2) )
return 5;
if( fabs(r1-r2) < d && d < r1+r2 )
return 3;
return 0; // indicate an error!
}
两圆的关系
最新推荐文章于 2021-09-02 16:55:12 发布