學習和介紹乙個有用的求任意簡單多邊形面積的經典公式。
所謂「簡單多邊形」,可以是凹、或凸多邊形,但原則上邊與邊之間不能有交叉;或者,拓撲一點,從多邊形捲繞數的角度,多邊形內的點捲繞數只能是±1
。這個公式有悠久的歷史,而且計算中十分有用,可惜維基裡面只有英文版。
這裡的shoelace,——「鞋帶」——,並不是人名,所以翻譯成「鞋帶公式」沒有任何問題。這個名字是怎麼來的呢?因為實際計算中,公式以n×
2 的矩陣形式表示多邊形上順序排列的頂點,行列式的計算又存在錯位,形如所繫的「鞋帶」,所以才得名。又叫「鞋帶演算法」、「鞋帶法」、「高斯面積公式」、測量員公式。
維基上的簡單例子是這樣的,比如已知 δa
bc三個頂點的座標 a:
(x1,
y1) 、 b:
(x2,
y2) 、 c:
(x3,
y3) ,對應的矩陣是這樣的: ⎡⎣
⎢⎢⎢⎢
⎢⎢⎢⎢
⎢⎢⎢⎢
⎢⎢⎢⎢
⎢⎢⎢⎢
x1x2
x3x1
y1y2
y3y1
⎤⎦⎥⎥
⎥⎥⎥⎥
⎥⎥⎥⎥
⎥⎥⎥⎥
⎥⎥⎥⎥
⎥⎥⇒⎡
⎣⎢⎢⎢
⎢⎢⎢⎢
⎢⎢⎢⎢
⎢⎢⎢⎢
⎢⎢⎢⎢
⎢x1x
2x3x
1⋱⋱⋱
y1y2
y3y1
⎤⎦⎥⎥
⎥⎥⎥⎥
⎥⎥⎥⎥
⎥⎥⎥⎥
⎥⎥⎥⎥
⎥⎥⇒⎡
⎣⎢⎢⎢
⎢⎢⎢⎢
⎢⎢⎢⎢
⎢⎢⎢⎢
⎢⎢⎢⎢
⎢x1x
2x3x
1×××
y1y2
y3y1
⎤⎦⎥⎥
⎥⎥⎥⎥
⎥⎥⎥⎥
⎥⎥⎥⎥
⎥⎥⎥⎥
⎥⎥計算面積時,先根據中間乙個矩陣,計算 a=
(x1×
y2)+
(x2×
y3)+
(x3×
y1)
再從最右側矩陣計算 b=
(y1×
x2)+
(y2×
x3)+
(y3×
x1)
則三角形面積為: sδ
abc=
12|a
−b|=
12∣∣
((x1
×y2)
+(x2
×y3)
+(x3
×y1)
)−((
y1×x
2)+(
y2×x
3)+(
y3×x
1))∣
∣ 代入乙個簡單的情形試試,a:
(0,4
),b:
(0,0
),c:
(3,0
) ,則是乙個直角頂點在原點,底
3 高
4面積為
6 的直角三角形:sδ
abc=
12∣∣
((x1
×y2)
+(x2
×y3)
+(x3
×y1)
)−((
y1×x
2)+(
y2×x
3)+(
y3×x
1))∣
∣=12
|((0
×0)+
(0×0
)+(3
×4))
−((4
×0)+
(0×3
)+(0
×0))
|=6
當簡單多邊形邊數或頂點數更多時,則計算面積時上述矩陣為 n×
2 維,計算規則不變。
公式的一般形式: a=
12∣∣
∣∑i=
1nxi
(yi+
1−yi
−1)∣
∣∣=1
2∣∣∣
∑i=1
nyi(
xi+1
−xi−
1)∣∣
∣=12
∣∣∣∣
∑i=1
ndet(x
iyix
i+1y
i+1)
∣∣∣∣
公式中約定: 當下標大於
n 時, xn
+1=x
1, yn
+1=y
1 。它可以看作格林公式用於面積計算時的特殊情形。
證明因為不難,用green定理來證時,只須假設合適的向量場,也比較方便。所以就不寫了。
這個講完之後,後面介紹它在近似數值計算求複雜閉曲線所包圍面積中的乙個應用。
求多邊形的面積
多邊形的面積求法 在草稿紙上面我們,我們就把它考慮成組合圖形去處理,所以我們是把他不斷的拆分,因為我們是不可以直接去求它的面積的。那麼在我們的電腦裡面,我們用 怎麼去去求面積呢?因為我們不是提前知道他們的組合圖形,所以我們不知道怎麼樣去求,或者說按照什麼圖形的面積求法,去求。當邊數為3的時候,我們知...
求多邊形的面積
定理1 已知三角形 a1a2a3的頂點座標ai xi yi i 1,2,3 它的重心座標為 xg x1 x2 x3 3 yg y1 y2 y3 3 定理2 已知三角形 a1a2a3的頂點座標ai xi yi i 1,2,3 該三角形的有向面積為 s x2 x1 y3 y1 x3 x1 y2 y1 2...
簡單多邊形與圓相交求面積
所謂簡單多邊形,就是指不相鄰的邊不相交,且每個頂點只跟2條邊相鄰。一般而言,除非題目要求判斷是否為簡單多邊形,否則給出的資料肯定都是簡單多邊形。以下將簡單多邊形簡稱為多邊形。多邊形一般都是以點集的形式給出,順時針或者逆時針。另外乙個需要注意的概念就是多邊形的凹凸性。一般而言,凸多邊形的演算法比凹多邊...