证明
1
:
我们先简单地从三个点入手
(
包括原点
)
。
面积
S
△
OAB = SABCD - S
△
OAD - S
△
OBC
·
SABCD = (y0 + y1)
×
(x0 - x1)
÷
2
·
S
△
OAD = x0
×
y0
÷
2
·
S
△
OBC = (-x1)
×
y1
÷
2
S
△
OAB
= (x0
×
y0 + x0
×
y1 - x1
×
y0 - x1
×
y1 - x0
×
y0 + x1
×
y1)
÷
2
= (x0
×
y1 - x1
×
y0)
÷
2
公式成立。同理你可以算出其他情况也能符合这个公式。
2.
假设该公式对于
n
个顶点的多边形成立。即:
S = 0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) )
再加如第
n+1
点后,面积
S' = S + S
△
A0AnAn+1
·
S = 0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) )
·
S
△
A0AnAn+1 = 0.5 * ( (X0*Yn-Xn*Y0) + (Xn*Yn+1-Xn+1*Yn) + (Xn+1*Y0-X0*Yn+1) )
∴
S'
=
S
=
0.5
*
(
(X0*Y1-X1*Y0)
+
(X1*Y2-X2*Y1)
+
...
+
(Xn*Yn+1-Xn+1*Yn)
+
(Xn+1*Y0-X0*Yn+1) )
综上所述,得到公式:
S = 0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) )
得证!