您的位置:首页 > 编程语言 > MATLAB

matlab 四面体体积

2017-03-04 16:06 2955 查看

计算方法:

已知四面体顶点坐标分别为

(x1,y1,z1),

(x2,y2,z2),

(x3,y3,z3),

(x4,y4,z4),

可以通过如下两种方法求四面体体积:

1. 利用向量的混和积

过一顶点的三向量设为a,b,c,
所求四面体的体积为:**|(a×b)·c|/6**.
假设(x1,y1,z1)为四面体顶点,则
a = (x2 - x1, y2 - y1,  z2 -z1)
b = (x3 - x1, y3 - y1, z3 - z1)
c = (x4 - x1, y4 - y1, z4 - z1)
将上述向量带入上面公式即可求出四面体体积


2. 利用行列式计算

| 1     1     1     1 |
v =1/6 * det   | x1    x2   x3    x4 |
| y1   y2   y3   y4   |
| z1   z2    z3   z4  |








注意事项:
-----

1. 注意舍入方式(0.5的舍入方向);防止输出-0.
2. 几何题注意多测试不对称数据.
3. 整数几何注意xmult和dmult是否会出界;
符点几何注意eps的使用.
4. 避免使用斜率;注意除数是否会为0.
5. 公式一定要化简后再代入.
6. 判断同一个2*PI域内两角度差应该是
abs(a1-a2)<beta||abs(a1-a2)>pi+pi-beta;
相等应该是
abs(a1-a2)<eps||abs(a1-a2)>pi+pi-eps;
7. 需要的话尽量使用atan2,注意:atan2(0,0)=0,
atan2(1,0)=pi/2,atan2(-1,0)=-pi/2,atan2(0,1)=0,atan2(0,-1)=pi.
8. cross product = |u|*|v|*sin(a)
dot product = |u|*|v|*cos(a)
9. (P1-P0)x(P2-P0)结果的意义:
正: <P0,P1>在<P0,P2>顺时针(0,pi)内
负: <P0,P1>在<P0,P2>逆时针(0,pi)内
0 : <P0,P1>,<P0,P2>共线,夹角为0或pi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 四面体体积