【matlab】给定三点三维坐标,求构成的三角形的面积

比如说 A(1, 1, 0) B(10, 1, 5) C(5, 5, 3)
2025-05-10 12:44:07
推荐回答(3个)
回答1:

定义函数
function area(A,B,C)%输入三点坐标
if length(A)==3&length(B)==3&length(C)==3%检查向量维数
X=B-A;
Y=C-B;
Z=cross(X,Y);%叉乘求向量
s=1/2*sqrt(dot(Z,Z))%点乘求面积
end%if结束
end
然后在命令窗口输入三点坐标,按A=[1,1,0]这种方式输入;
运行函数area(A,B,C)
得到
s =

20.8866

回答2:

先求各边长,再通过公式求面积!

回答3:

先求出各边长再用海伦公式S=√[p(p-a)(p-b)(p-c)] ,p=(a+b+c)/2
代码如下:
AX=1;AY=1;AZ=0;BX=10;BY=1;BZ=5;CX=5;CY=5;CZ=3;
a=sqrt((AX-BX)^2+(AY-BY)^2+(AZ-BZ)^2);
b=sqrt((BX-CX)^2+(BY-CY)^2+(BZ-CZ)^2);
c=sqrt((AX-CX)^2+(AY-CY)^2+(AZ-CZ)^2);
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c))
结果:
S =

20.8866