#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int main() { double x1,y1,x2,y2,r; double dis; while(scanf("%lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&r)!=EOF){ dis=sqrt(pow(y2-y1,2)+pow(x2-x1,2)); if(dis==2*r){ printf("相切\n"); }else if(dis>2*r){ printf("相离\n"); }else{ if(dis==0){ printf("重合\n"); }else{ double ang1=acos((r*r+dis*dis-r*r)/(2*r*dis)); double ang2=acos((r*r+dis*dis-r*r)/(2*r*dis)); double area=ang1*r*r + ang2*r*r - r*dis*sin(ang1); printf("相交 %.2lf\n",area); } } } return 0; } |
Double click to view unformatted code.