分析 分情况讨论 中心到底面的距离 >= r, 答案为0。 中心到底面的距离 < r <= 中心到棱的中点的距离, 重叠的部分是圆。 棱的中点的距离 < r <= 中心到棱的顶点的距离,圆有一部分超过了三角形,计算超出的弧长,用的圆面积减去超过的,再乘以每个面。中间要算角度比较麻烦。 中心到棱的顶点的距离 <= r, 全部表面积。 全视图 底面(情况3) 这张图片由 @KirbyOvO 大佬提供。 #include<bits/stdc++.h> using namespace std; typedef long long LL; ...