坐标系中三角形的面积公式

在平面直角坐标系 OxyOxy 中,设点 A(x1,y1)A(x_1,y_1),B(x2,y2)B(x_2,y_2),则

S△OAB=12∣det⁡[x1y1x2y2]∣=12∣x1y2−x2y1∣.S_{\triangle OAB} = \frac12 \left| \det \begin{bmatrix} x_1 & y_1 \\ x_2 & y_2 \end{bmatrix} \right| = \frac12 |x_1 y_2 - x_2 y_1|.

这个公式的证明有很多,所需要的预备知识也不尽相同.

下面按照所用到的知识的难度,有浅到深,给出几种不同的证明方法.

1. 初中的证明方法

本质上,这种方法就是割补法.

若 AB⊥xAB \perp x 轴,如图1,

图1

则 x1=x2x_1 = x_2,直线 ABAB 与 xx 轴的交点为 M(x1,0)M(x_1,0),所以

S△OAB=12∣AB∣⋅∣OM∣=12∣y1−y2∣⋅∣x1∣=12∣x1y2−x2y1∣.\begin{aligned} S_{\triangle OAB} &= \frac12 |AB|\cdot |OM| \\[2ex] &= \frac12 |y_1-y_2| \cdot |x_1| \\[2ex] &= \frac12 |x_1 y_2 - x_2 y_1|. \end{aligned}

若 AB⊥̸xAB \not\perp x 轴,如图2,

图2

设直线 ABAB 与 yy 轴的交点为 N(0,b)N(0,b),则

S△OAB=12∣ON∣⋅∣x1−x2∣=12∣b∣⋅∣x1−x2∣.(i)\begin{aligned} S_{\triangle OAB} &= \frac12 |ON| \cdot |x_1-x_2| \\[2ex] &= \frac12 |b| \cdot |x_1-x_2|. \end{aligned}\tag{i}

设直线 ABAB 的解析式为 y=kx+by=kx+b,则

{kx1+b=y1kx2+b=y2\begin{cases} kx_1+b=y_1 \\ kx_2+b=y_2 \end{cases}

解得

{k=y1−y2x1−x2b=x1y2−x2y1x1−x2\begin{cases} k=\dfrac{y_1-y_2}{x_1-x_2} \\[2ex] b=\dfrac{x_1y_2-x_2y_1}{x_1-x_2} \end{cases}

所以

S△OAB=12∣x1y2−x2y1x1−x2∣⋅∣x1−x2∣=12∣x1y2−x2y1∣.\begin{aligned} S_{\triangle OAB} &= \frac12 \left|\frac{x_1y_2-x_2y_1}{x_1-x_2}\right| \cdot |x_1-x_2| \\[2ex] &= \frac12 \left|x_1 y_2 - x_2 y_1\right|. \end{aligned}

当 NN 点不在线段 ABAB 上的时候,(i)(\mathrm{i}) 式依然是成立的,所以结论不变.

2. 高中的证明方法

2.1. 利用向量的投影

这种方法是利用向量的投影,来求出三角形的高.

如图3,

图3

向量 u=(−y1,x1)\boldsymbol{u} = (-y_1,x_1) 是由 OA→=(x1,y1)\overrightarrow{OA} = (x_1,y_1) 逆时针旋转 90∘90^\circ 得到的向量,所以 OAOA 边上的高为 h=∣OB→⋅u∣∣u∣h = \dfrac{\left| \overrightarrow{OB}\cdot\boldsymbol{u} \right|}{\left| \boldsymbol{u} \right|},

所以

S△OAB=12∣OA∣⋅∣OB→⋅u∣∣u∣=12∣OB→⋅u∣=12∣x1y2−x2y1∣.\begin{aligned} S_{\triangle OAB} &= \frac12 |OA| \cdot \frac{\left| \overrightarrow{OB}\cdot\boldsymbol{u} \right|}{\left| \boldsymbol{u} \right|} \\[2ex] &= \frac12 \left| \overrightarrow{OB}\cdot\boldsymbol{u} \right| \\[2ex] &= \frac12 \left|x_1 y_2 - x_2 y_1\right|. \end{aligned}

2.2. 利用向量的夹角

直接利用向量的点积,求出三角形的角.

S△OAB=12∣OA∣⋅∣OB∣⋅sin⁡∠AOB=12∣OA∣⋅∣OB∣⋅1−cos⁡2∠AOB=12∣OA→∣⋅∣OB→∣⋅1−(OA→⋅OB→∣OA→∣⋅∣OB→∣)2=12(∣OA→∣⋅∣OB→∣)2−(OA→⋅OB→)2\begin{aligned} S_{\triangle OAB} &= \frac12 |OA| \cdot |OB| \cdot \sin\angle AOB \\[2ex] &= \frac12 |OA| \cdot |OB| \cdot \sqrt{1-\cos^2\angle AOB} \\[2ex] &= \frac12 \left|\overrightarrow{OA}\right| \cdot \left|\overrightarrow{OB}\right| \cdot \sqrt{1-\left(\frac{\overrightarrow{OA}\cdot\overrightarrow{OB}}{\left|\overrightarrow{OA}\right| \cdot \left|\overrightarrow{OB}\right|}\right)^2} \\[2ex] &= \frac12 \sqrt{\left(\left|\overrightarrow{OA}\right| \cdot \left|\overrightarrow{OB}\right|\right)^2-\left(\overrightarrow{OA}\cdot\overrightarrow{OB}\right)^2} \end{aligned}

将坐标带入,可得

S△OAB=12(x12+y12)(x22+y22)−(x1x2+y1y2)2=12x12y22+x22y12−2x1x2y1y2=12(x1y2−x2y1)2=12∣x1y2−x2y1∣\begin{aligned} S_{\triangle OAB} &= \frac12 \sqrt{\left(x_1^2+y_1^2\right)\left(x_2^2+y_2^2\right)-\left(x_1x_2+y_1y_2\right)^2} \\[2ex] &= \frac12 \sqrt{x_1^2y_2^2+x_2^2y_1^2-2x_1x_2y_1y_2} \\[2ex] &= \frac12 \sqrt{\left(x_1y_2-x_2y_1\right)^2} \\[2ex] &= \frac12 \left|x_1y_2-x_2y_1\right| \end{aligned}

3. 大学的证明方法

利用向量的叉积或者混合积的几何意义,可以很容易地得到我们所需要的公式.

3.1. 利用向量的叉积

考虑空间坐标系 OxyzOxyz,OA→=(x1,y1,0)\overrightarrow{OA} = (x_1,y_1,0),OB→=(x2,y2,0)\overrightarrow{OB} = (x_2,y_2,0),则

S△OAB=12∣OA∣⋅∣OB∣⋅sin⁡∠AOB=12∣OA→×OB→∣=12∣[ijkx1y10x2y20]∣=12∣∣x1y1x2y2∣k∣=12∣x1y2−x2y1∣.\begin{aligned} S_{\triangle OAB} &= \frac12 |OA| \cdot |OB| \cdot \sin\angle AOB \\[2ex] &= \frac12 \left| \overrightarrow{OA} \times \overrightarrow{OB} \right| \\[2ex] &= \frac12 \left| \begin{bmatrix} \boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\ x_1 & y_1 & 0 \\ x_2 & y_2 & 0 \end{bmatrix} \right | \\[2ex] &= \frac12 \left| \left| \begin{matrix} x_1 & y_1 \\ x_2 & y_2 \end{matrix} \right| \boldsymbol{k} \right| \\[2ex] &= \frac12 \left|x_1y_2-x_2y_1\right|. \end{aligned}

3.2. 利用向量的混合积

我们把三个点都放到平面 z=1z=1 上,设 P(0,0,1)P(0,0,1),A(x1,y1,1)A(x_1,y_1,1),B(x2,y2,1)B(x_2,y_2,1),则

S△PAB=3VO−PAB=3⋅16∣OP→⋅(OA→×OB→)∣=12∣det⁡[001x1y11x2y21]∣=12∣det⁡[x1y1x2y2]∣.\begin{aligned} S_{\triangle PAB} &= 3V_{O-PAB} \\[2ex] &= 3\cdot \frac16 \left| \overrightarrow{OP} \cdot \left( \overrightarrow{OA} \times \overrightarrow{OB} \right) \right| \\[2ex] &= \frac12 \left|\det \begin{bmatrix} 0 & 0 & 1 \\ x_1 & y_1 & 1 \\ x_2 & y_2 & 1 \\ \end{bmatrix} \right| \\[2ex] &= \frac12 \left|\det \begin{bmatrix} x_1 & y_1 \\ x_2 & y_2 \end{bmatrix} \right|. \end{aligned}

4. 推广

对于一般的 △ABC\triangle ABC,设点 A(x1,y1)A(x_1,y_1),B(x2,y2)B(x_2,y_2),C(x3,y3)C(x_3,y_3),则

AB→=(x2−x1,y2−y1),AC→=(x3−x1,y3−y1),\begin{aligned} \overrightarrow{AB} &= (x_2-x_1,y_2-y_1), \\ \overrightarrow{AC} &= (x_3-x_1,y_3-y_1), \end{aligned}

所以

S△ABC=12∣det⁡[x2−x1y2−y1x3−x1y3−y1]∣.S_{\triangle ABC} = \frac12 \left|\det \begin{bmatrix} x_2-x_1 & y_2-y_1 \\ x_3-x_1 & y_3-y_1 \end{bmatrix} \right|.

这种方法相当于把 △ABC\triangle ABC 沿向量 AO→\overrightarrow{AO} 平移到了原点.

或者考虑空间坐标系 OxyzOxyz,把三个点都放到平面 z=1z=1 上,设点 A(x1,y1,1)A(x_1,y_1,1),B(x2,y2,1)B(x_2,y_2,1),C(x3,y3,1)C(x_3,y_3,1),则

S△ABC=3VO−ABC=3⋅16∣OA→⋅(OB→×OC→)∣=12∣det⁡[x1y11x2y21x3y31]∣.\begin{aligned} S_{\triangle ABC} &= 3V_{O-ABC} \\[2ex] &= 3\cdot \frac16 \left| \overrightarrow{OA} \cdot \left( \overrightarrow{OB} \times \overrightarrow{OC} \right) \right| \\[2ex] &= \frac12 \left|\det \begin{bmatrix} x_1 & y_1 & 1 \\ x_2 & y_2 & 1 \\ x_3 & y_3 & 1 \end{bmatrix} \right|. \end{aligned}

由行列式的性质可知,这两个式子是等价的.