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