四面体体积求法

网友投稿 1596 2022-08-27

四面体体积求法

四面体体积求法

四面体(三棱锥)体积 :

有:

不过这是有向的。如果知道那四个顶点,用这个公式即可求出体积。

如果不知道四点仅知道6条边长,就得用下面的方法——欧拉四面体公式

写成行列式:

那么有:

转置:

行列式乘法:

其中,

因为:

所以:

有:

进一步简化:

题目:

HDU 1411

​​#include #include using namespace std;int main(){ //freopen("cin.txt","r",stdin); double p,q,l,r,m,n; while(~scanf("%lf%lf%lf%lf%lf%lf",&p,&q,&l,&r,&m,&n)){ double part1=p*p+q*q-r*r; //p*p*q*q*l*l; double part2=q*q+l*l-n*n; double part3=l*l+p*p-m*m; double ans=4*p*p*q*q*l*l+part1*part2*part3-q*q*part3*part3-l*l*part1*part1 -p*p*part2*part2; ans=sqrt(ans/144); printf("%.4lf\n",ans); } return 0;}

POJ 2208

​​:

有:

S=

证明来自:

​​judge?

#include #include #include using namespace std;int main(){ //freopen("cin.txt","r",stdin); double p,q,l,r,m,n; while(~scanf("%lf%lf%lf%lf%lf%lf",&p,&q,&l,&r,&m,&n)){ double A=acos((p*p+q*q-r*r)/(2*p*q)); double B=acos((p*p+l*l-m*m)/(2*p*l)); double R=acos((q*q+l*l-n*n)/(2*q*l)); double P=(A+B+R)/2; double ans=p*q*l/3*sqrt(sin(P)*sin(P-A)*sin(P-B)*sin(P-R)); printf("%.4lf\n",ans); } return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:三维空间——点线面关系
下一篇:积性函数
相关文章

 发表评论

暂时没有评论,来抢沙发吧~