matlab實現求平面或空間三點圍成三角形的面積

原理簡單講解

我們知道三角形的面積=1/2×a×b×sinC,其中C爲ab兩邊的夾角。
運用叉乘公式(matlab裏用cross()函數實現),我們可以得到absinC,但這時候結果還是一個三維向量,用norm()函數取向量的模長即可。


求三角形面積函數

function s=area(A,B,C)
if length(A)==2  %輸入三點是二維平面座標,變成三維
    AB=[B-A 0];
    BC=[C-B 0];
elseif length(A)==3  %輸入三點是三維空間座標
    AB=B-A;
    BC=C-B;
end
    Z=cross(AB,BC);  %叉乘
    s=1/2*norm(Z);  %取模
end

測試

  • 輸入二維座標結果
    輸入:
A=[2 2];
B=[0 0];
C=[2 -2];
s=area(A,B,C)

輸出:
在這裏插入圖片描述

  • 輸入三維座標結果
    輸入:
A=[0 0 0];
B=[1 1 1];
C=[0 0 1];
s=area(A,B,C)

輸出:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章