欧拉四面体体积

转自大佬:点击打开链接   点击打开链接

1,建立x,y,z直角坐标系。设A、B、C少拿点的坐标分别为(a1,b,1,c1),(a2,b2,c2),(a3,b3,c3),四面体O-ABC的六条棱长分别为l,m,n,p,q,r;


2,四面体的体积为,由于现在不知道向量怎么打出来,我就插张图片了,


将这个式子平方后得到:


3,根据矢量数量积的坐标表达式及数量积的定义得


又根据余弦定理得


4,将上述的式子带入(1),就得到了传说中的欧拉四面体公式

代码:

// 求四面体的体积,欧拉公式.
// p, q, r 为AB,AC,AD, n, m, l 为BC, BD, CD
double V(double p, double q, double r, double n, double m, double l)
{
    double rr = r * r, mm = m * m, nn = n * n;
    double pp = p * p, qq = q * q, ll = l * l;
    // 求3 * 3 的行列式..
    double x1 = (pp + qq - nn) / 2.0, x2 = (pp + rr - mm) / 2.0, x3 = (qq + rr - ll) / 2.0;
    double v = pp * (qq * rr - x3 * x3) - x1 * (x1  * rr - x2 * x3) + x2 * (x1 * x3 - qq * x2);
    return sqrt(v) / 6.0;
}

收藏起来!!!当模板用

猜你喜欢

转载自blog.csdn.net/blackneed/article/details/81002566