矢量计算三角形面积

设有三角形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

点赞