#include <bits/stdc++.h> using namespace std; int main() { double x1, y1, x2, y2, r; while (cin >> x1 >> y1 >> x2 >> y2 >> r) { if (x1 == x2 && y1 == y2) printf("重合\n"); else { double d = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2)); if (d == r*2) printf("相切\n"); else if (d > r * 2) printf("相离\n"); else { printf("相交 "); double c, s; c = acos(d / 2.0 / r); // acos()返回的是弧度 s = c * r*r - r * d*sin(c) / 2.0; // 三角形面积=1/2absinc;扇形面积是1/2*弧度*r^2 printf("%.2lf\n", s * 2); // 面积是(两个扇形面积再减去一个三角形面积) * 2 } } } return 0; } |
Double click to view unformatted code.