三角形求面积的一种算法
来源:百度知道 编辑:UC知道 时间:2024/06/05 13:50:47
向量AB = [x2 - x1, y2 - y1]
向量AC = [x3 - x1, y3 - y1]
三角形ABC的面积 = 0.5|AB||AC|sin(角BAC)
【|AB|为向量AB的模,也就是向量AB的长度】
= 0.5*|向量AB与向量AC的叉积|
= 0.5*|(x2 - x1)(y3 - y1) - (y2 - y1)(x3 - x1)|
【最后的这个|.|是绝对值】
----------------
从矩阵角度讲,
det[ x1,x2,x3; y1,y2,y3; 1, 1, 1 ]
【其中,det[D]表示矩阵D的行列式,这个矩阵的第1行元素分别为x1,x2,x3;第2行元素分别为y1,y2,y3;第3行元素分别为1,1,1】
= det[x1,x2 - x1, x3 - x1; y1, y2 - y1, y3 - y1; 1, 0 ,0]
= det[x2 - x1, x3 - x1; y2 - y1, y3 - y1]
= (x2 - x1)(y3 - y1) - (y2 - y1)(x3 - x1)
所以,
三角形ABC的面积
= 0.5*|(x2 - x1)(y3 - y1) - (y2 - y1)(x3 - x1)|
= 0.5*|det[ x1,x2,x3; y1,y2,y3; 1, 1, 1 ]|
【其实不用考虑3点的顺序,只要在最后加上绝对值就行了】
的确可以用行列式方法求
以下是向量的方法,希望能帮到你:
第一步:把三条边AB,BC,AC的向量用坐标表示出来
第二步:根据边的向量把三条边的长度|AB|,|BC|,|AC|(即向量的模)算出!
第三步:根据cosA=AB.AC/|AB||AC| 其中(AB.AC为向量的向量积)算出sinA
第四步:SABC=(1/2)*AB*AC*sinA