#include <bits/stdc++.h>
typedef long long ll;
const long double pi = acos(-1);
typedef struct {
long double x, y, z, r;
}Point;
int n;
Point other;
Point s;
//两点之间距离
long double dis(Point p, Point q) {
long double ans = sqrt((p.x - q.x)*(p.x - q.x) + (p.y - q.y)*(p.y - q.y) + (p.z - q.z)*(p.z - q.z));
return ans;
}
long double x1,x2,yy1,y2,z1,z2,r1,r2,a[2],b[2],c[2],d[2],e[2],f[2];
long double k1,k2;
long double pw(long double x){
return x*x;
}
long double calr(long double a,long double b, long double k){
return (-a*a+k*k*b*b)/(1-k*k) + pw((-k*k*b+a)/(1-pw(k)));
}
long double calpos( long double a,long double b, long double k){
return (a-pw(k)*b)/(1-pw(k));
}
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
for(int i=0;i<2;i++)
scanf("%Lf%Lf%Lf%Lf%Lf%Lf",&a[i],&b[i],&c[i],&d[i],&e[i],&f[i]);
scanf("%Lf%Lf",&k1,&k2);
s.x=calpos(a[0],d[0],k1);
s.y=calpos(b[0],e[0],k1);
s.z=calpos(c[0],f[0],k1);
long double r2 = calr(a[0],d[0],k1)+calr(b[0],e[0],k1)+calr(c[0],f[0],k1);
s.r=sqrt(r2);
other.x=calpos(a[1],d[1],k2);
other.y=calpos(b[1],e[1],k2);
other.z=calpos(c[1],f[1],k2);
r2=calr(a[1],d[1],k2)+calr(b[1],e[1],k2)+calr(c[1],f[1],k2);
other.r=sqrt(r2);
long double ans = 0;
long double d = dis(s, other);
if(other.r>s.r) std::swap(other,s);
if (d >= s.r + other.r) {
}else if (d + other.r <= s.r) {
ans += (4.0 / 3)*pi*other.r*other.r*other.r;
}
else {
long double co = (s.r*s.r + d * d - other.r*other.r) / (2.0*d*s.r);
long double h = s.r*(1 - co);
ans += (1.0 / 3)*pi*(3.0*s.r - h)*h*h;
co = (other.r*other.r + d * d - s.r*s.r) / (2.0*d*other.r);
h = other.r*(1 - co);
ans += (1.0 / 3)*pi*(3.0*other.r - h)*h*h;
}
printf("%.3Lf\n",ans);
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战