#include<stdio.h> #include<stdlib.h> #include<math.h> int main(){ double x1, y1, x2, y2, r; double pai=3.1415926; while((scanf("%lf %lf %lf %lf %lf", &x1, &y1, &x2, &y2, &r)!=EOF)){ double x_ = (x1-x2); double y_ = (y1-y2); double distance = sqrt(x_*x_ + y_*y_); if(distance > 2*r){ printf("相离\n"); }else if(distance == 2*r){ printf("相切\n"); }else if(distance < 2*r && distance>0){ double h = sqrt(r*r - distance/2*distance/2); double sin_ = asin(h/r); double s_circle = r * r * sin_*2; double s_trangle = h * distance; double s = (s_circle - s_trangle); int s_ = (int)(s*100+0.5); printf("相交 %0.2lf\n",s_*1.0/100); }else if(distance == 0){ printf("重合\n"); } } return 0; } |
Double click to view unformatted code.