两球相交求体积并

链接:https://ac.nowcoder.com/acm/contest/373/E
来源:牛客网
 

题目描述

某天lililalala正在玩一种奇妙的吃鸡游戏--因为在这个游戏里会同时有两个圆形安全区(他们可能相交)。

lililalala觉得求圆的面积并太简单了,所以想把这个问题升级一下。

现在在三维空间里有 2 个球形安全区,分别用四元组  <x1,y1,z1,r1> <x1,y1,z1,r1> 和 <x2,y2,z2,r2> <x2,y2,z2,r2>表示,其中  r1、r2 r1、r2表示球半径, (x1,y1,z1) (x1,y1,z1)和 (x2,y2,z2) (x2,y2,z2)表示球心

lililalala想知道安全区的总体积是多少?即求这两个球的体积并。

输入描述:


 

输入有两行。

第一行四个实数 x1,y1,z1,r1 x1,y1,z1,r1--第一个球的球心坐标和半径。

第二行四个实数 x2,y2,z2,r2 x2,y2,z2,r2--第二个球的球心坐标和半径。

保证所有输入的坐标和半径的范围都在 [−100,100] [−100,100] 内。

输出描述:

输出一行一个实数--表示两个球的体积并,你的答案被认为正确,当且仅当绝对误差不超过 10−6 10−6。

示例1

输入

复制

0 0 0 1
2 0 0 1

输出

复制

8.3775804

示例2

输入

复制

0 0 0 1
0 0 0 0.5

输出

复制

4.1887902

附上公式

原文地址:https://www.cnblogs.com/caowenbo/p/11852333.html