1. 程式人生 > >向量計算三角形面積

向量計算三角形面積

設有三角形ABC,三頂點座標分別為:A(x1,y1),B(x2,y2),C(x3,y3)

設BC長為a,CA長為b,AB長為a。規定以C為起點、B為終點的向量為a,規定以C為起點、A為終點的向量為b

則根據向量積定義,有|a×b|=ab*sinC,恰巧三角形面積S=ab*sinC/2,所以S=|a×b|/2

規定沿橫軸方向的單位向量為x,沿縱軸方向的單位向量為y,沿豎軸方向的單位向量為z

顯然,向量ab在橫軸上投影分別為(x2-x3)、(x1-x3),在縱軸上投影分別為(y2-y3)、(y1-y3)

根據向量的座標分解法,有a=(x2-x3)x+(y2-y3)yb=(x1-x3)x

+(y1-y3)y

根據向量的向量積的分配率、與數乘的結合率,以及x×y=zy×x=-zx×x=0y×y=0

a×b=[(x2-x3)x+(y2-y3)y]×[(x1-x3)x+(y1-y3)y]

=(x2-x3)x×(x1-x3)x+(x2-x3)x×(y1-y3)y+(y2-y3)y×(x1-x3)x+(y2-y3)y×(y1-y3)y

=(x2-x3)(x1-x3)(x×x)+(x2-x3)(y1-y3)(x×y)+(y2-y3)(x1-x3)(y×x)+(y2-y3)(y1-y3)(y×y)

=(x2-x3)(y1-y3)z-(y2-y3)(x1-x3)z=[(x2-x3)(y1-y3)-(y2-y3)(x1-x3)]z

則S=|a×b|/2=|(x2-x3)(y1-y3)-(y2-y3)(x1-x3)|/2=|x2y1-x2y3-x3y1+x3y3-y2x1+y2x3+y3x1-y3x3|/2,即

S=|x1y2+x2y3+x3y1-y1x2-y2x3-y3x1|/2

或許不易記憶,因此採用三階行列式形式寫出:

 x1 y1 1 

 x2 y2 1

 x3 y3 1

求出行列式值,取絕對值併除以2