如何计算两个相交面下的体积?

时间:2019-02-21 01:18:42

标签: matlab

我喜欢计算两个相交平面下的体积。使用此代码绘制两个平面。

P1 = [575,0,400];
P2 = [287.5,0,662];
P3 = [575,3500,154];
normal = cross(P1-P2, P1-P3)
syms x y z
P = [x, y, z]
ep1=dot(normal, P-P1)
%  get the equation
Z = solve(ep1,z) 
% draw the first plane
ezsurf(Z,[287.5,575,0,3500])
hold on
% draw the second horizontal plane
[x,y]=meshgrid(0:500:3500)
z = ones(8,8)*440
surf(x, y, z)

因此,我必须计算第一平面下的体积。 我使用了这段代码,但是我不知道如何使用符号方程Z来构造矩阵Zm。如何使用网状网格和冲浪而不是ezsurf绘制第一个平面。

%f=@(x,y)(interp2(Zm,Xq,Yq))
% I want to calculate volume under the plane  ranged by Xmin=2.875, Xmax=575,Ymin=0,Ymax=3500 
%volume = quad2d(f,(287.5),575,0,3500)
%volume = integral2(f,287.5,575,0,3500)

非常感谢。

1 个答案:

答案 0 :(得分:0)

作为一种可能更容易理解的替代策略,我建议使用一些几何公式来计算面积,而不是进行插值。您可以将3D形状分解为简单的三角棱镜和不规则的四面体。两者都有明确定义的通用公式。 http://mathcentral.uregina.ca/QQ/database/QQ.09.03/peter2.html