我们都知道已知A(x1,y1)、B(x2,y2)、C(x3,y3)三点的面积公式为
|x1 x2 x3|
S(A,B,C) = |y1 y2 y3| * 0.5 = [ (x1-x3) * (y2-y3) - (x2-x3) * (y1-y3) ] * 0.5
|1 1 1|
(当三点为逆时针时为正,顺时针则为负的)
也可以不用考虑正负,直接用这个式子:
S(A,B,C) = (abs)( [ (x1-x3) * (y2-y3) - (x2-x3) * (y1-y3) ] ) * 0.5
对多边形A1A2A3、、、An(顺或逆时针都可以),设平面上有任意的一点P,则有:
S(A1,A2,A3.........,An) = abs(S(P,A1,A2) + S(P,A2,A3)+.............+S(P,An,A1))
P是可以取任意的一点,用(0,0)时就是下面的了:
设点顺序 (x1 y1) (x2 y2) ... (xn yn)
则面积等于
| x1 y1 | | x2 y2 | | xn yn |
0.5 * abs( | x2 y2 | + | x3 y3 |+ ...... + | x1 y1 | )
其中
| x1 y1 |
| x2 y2 | = x1 * y2 - y1 * x2
因此面积公式展开为: |x1 y1| |x2 y2| |xn yn|
0.5*abs(|x2 y2|+|x3 y3|+ ...+|x1 y1|)=0.5*abs(x1*y2 - y1*x2 + x2*y3 - y2*x3 + ...+ xn*y1 - yn * x1)