体积计算方法[1]
三角网格的所有三角面片围成的空间区域是封闭的,三角网格模型的体积可由每个三角面片的投影体积之和来计算。图1所示棱长为l的立方体,投影平面与下底面平行且距离为h。由于立方体各侧面内的三角面片与投影平面垂直,投影体积为0,因此立方体体积V 可由上下底面的4个三角面片t1、t2、t3 和t4的带符号投影体积来计算:
四面体的计算公式已知:
三角形面片在XOY平面的投影是个5面体,每个5面体可以拆分为3个四面体。
MATLAB程序如下:
clear;clc;
%从STL文件里读取法向量与三角形顶点坐标
fid=fopen('dakong.txt'); %打开文件
f=0; fnum=0; vnum=0; fmlie=1; vmlie=1;m=1; fmhang=1; vmhang=1;vshu=1; vz=0;
while feof(fid) == 0 %循环直到文件读取完成
tline = fgetl(fid);