TJU1279

本文介绍了一种通过已知四面体六条棱长来计算其体积的方法。使用坐标系定位四面体顶点,通过解析几何原理解出顶点坐标,进而计算出体积。
题目意思很明确,知道四面体六条棱长求体积。
数学问题,我们把四面体四个顶点放到坐标系中,并把A点设为原点,B坐标(x1,0,0),C坐标(x2,y2,0),D坐标(x3,y3,z3)。由于6条边,可以列出6个方程,因此可以解出x1,x2,y2,x3,y3,z3。而z3就是ABC面上的高。把ABC面积乘以z3再除以3就是答案了。
None.gif#include<iostream>
None.gif#include
<iomanip>
None.gif#include
<cmath>
None.gif
using namespace std;
None.gif
None.gif
int main()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
long double AB,AC,AD,BC,BD,CD;
InBlock.gif    
long double x2,y2_2,x3,y3_2,z3;
InBlock.gif    
long double AB_2,AC_2,AD_2;
InBlock.gif    
long double S,V;
InBlock.gif    
while(cin>>AB>>AC>>AD>>BC>>BD>>CD)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        AB_2 
= AB*AB;
InBlock.gif        AC_2 
= AC*AC;
InBlock.gif        AD_2 
= AD*AD;
InBlock.gif        x2 
= (AC_2 - BC*BC + AB_2) / 2 / AB;
InBlock.gif        x3 
= (AD_2 - BD*BD + AB_2) / 2 / AB;
InBlock.gif        y2_2 
= AC_2 - x2*x2;
InBlock.gif        S 
= AD_2 - CD*CD + AC_2 - 2*x2*x3;
InBlock.gif        y3_2 
=  S*/ 4 / y2_2;
InBlock.gif        z3 
= sqrtl(AD_2 - x3*x3 - y3_2);
InBlock.gif        V 
= (AB+BC+AC) / 2;
InBlock.gif        S 
= sqrtl(V*(V-AB)*(V-BC)*(V-AC));
InBlock.gif        V 
= S * z3 / 3;
InBlock.gif        
if(V > 1e-10) cout<<setiosflags(ios::fixed)<<setprecision(4)<<V<<endl;
InBlock.gif        
else cout<<"0.0000\n";
ExpandedSubBlockEnd.gif    }

InBlock.gif    
return 0;
ExpandedBlockEnd.gif}

转载于:https://www.cnblogs.com/FancyMouse/articles/264119.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值