叉积与多边形面积
任意多边形的面积并不总是十分好求的,对于边数少的多边形或正多边形,我们由公式即可计算面积,但是对于复杂的多边形,并没有很直观的公式来计算面积。
对简单情况的描述
考虑一个简单的正四边形,边长为二的情况下,它的面积为4.
正方形的面积公式告诉我们它的面积可以简单地通过2\times 2=4
来得到,但相等的边长是任意多边形中很难满足的条件,所以对于任意多边形的面积,我们需要找到更宽的条件。
这里,我们选择平面中最常见的东西,点和线作为辅助, 试着计算这个正四边形的面积.
如果点O
是原点, 而O
到A,B,C,D
的连线记为向量\vec{a},\vec{b},\vec{c},\vec{d}
(之后均用粗体字母表示向量), 那么这个正四边形的面积为
S=\frac{1}{2}(\textbf{a}\times \textbf{b})(\textbf{b}\times \textbf{c})(\textbf{c}\times \textbf{d})(\textbf{d}\times \textbf{a})
相较于使用边长的方法,这个方法只要求多边形拥有顶点即可,这样,对任意多边形这个计算公式均成立。
真的是这样吗?
我们的例子中,使用的正多边形是一个凸多边形,且点在多边形内,如果点在多边形外,这个式子还成立吗?
讨论
只需要稍加思考便可知道,点的位置对计算是没有影响的。
这是因为叉积所计算的面积是带有方向的,如下图所示,如果点O
在正方形外,多边形OAB,OBC,OAD
的面积为正, 而由叉积计算出的OCD
的面积是负数。
这是由叉积的定义决定的,如下图:
对于A,B
两向量, 面积为正的情况是在A
按逆时针旋转到B
时的角度\alpha
决定的, 这个值为\cos{\alpha}
, 所以一旦\alpha\gt 180^{\circ},d
就会为负数, 从而使面积变为负数。
那我们可以推断, 对任意一个多边形\textbf{P}
来说, 通过平面中任意一点p
与个顶点的连线形成的向量\textbf{v}_2,···,\textbf{v}_n
, 我们可以求得该多边形的面积为
\textbf{S}_\textbf{P}=\frac{1}{2}(\textbf{v}_1\times \textbf{v}_2)···(\textbf{v}_{n}\times \textbf{v}_1)
复平面与复数
如果处理在复平面上的图形面积, 使用复数通常是更好的办法。
叉积的计算
回到叉积的定义上, 我们从上面的图中发现, d向量是不处在平面内的, 但它的方向永远与平面正交且长度是图中三角形面积的两倍。在解析几何中,我们需要用三维向量来定义叉积的计算。
\begin{vmatrix}
\textbf{i} & \textbf{j} & \textbf{k}\\
a_r & a_i & 0 \\
b_r & b_i & 0
\end{vmatrix}=0 \textbf{i}+0 \textbf{j}+\underline{(a_rb_i-a_ib_r)} \textbf{k}
其中\textbf{i},\textbf{j},\textbf{k}
是三维空间中的一组基底。
熟悉的模式
如果你熟悉复数的运算法则, 就会发现\textbf{j}+(a_rb_i-a_ib_r)
在复数乘法中也经常出现。
这给我们用复数计算多边形的面积提供了一个思路。
如果将平面中顶点与点p
的连线当作在复平面上的复数, 对于上面正四边形的例子我们有:
\textbf{a}=a_r+a_i\textbf{i} \\
··· \\
(\textbf{a}\times \textbf{b})=(a_r+a_i\textbf{i})(b_r+b_i\textbf{i})=[a_rb_r-a_ib_i]+\underline{[a_rb_i+a_ib_r]}\textbf{i} \\
···
我们看到了熟悉的结构, 但符号出现了一些问题。
要改变其符号,只需将\textbf{a}
换成它的共轭\bar{\textbf{a}}=a_r-a_i\textbf{i}
即可。
这时候我们就能有:
\textbf{S}_\textbf{P}=\frac{1}{2}(\textbf{v}_1\times \textbf{v}_2)···(\textbf{v}_{n}\times \textbf{v}_1) \\
=\frac{1}{2} \mathrm{Im}(\bar{\textbf{v}}_1\textbf{v}_2+\bar{\textbf{v}}_2\textbf{v}_3+···+\bar{\textbf{a}}_n\textbf{v}_1) \\
由图形证明, 事实的确如此。
可见无论点在哪, 虚轴的值永远是正方形的面积4。
Reference
Visual Complex Analysis