求簡單多邊形面積時非常有用的「鞋帶公式」

2021-07-03 21:55:04 字數 2467 閱讀 3000

學習和介紹乙個有用的求任意簡單多邊形面積的經典公式。

所謂「簡單多邊形」,可以是凹、或凸多邊形,但原則上邊與邊之間不能有交叉;或者,拓撲一點,從多邊形捲繞數的角度,多邊形內的點捲繞數只能是±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條邊相鄰。一般而言,除非題目要求判斷是否為簡單多邊形,否則給出的資料肯定都是簡單多邊形。以下將簡單多邊形簡稱為多邊形。多邊形一般都是以點集的形式給出,順時針或者逆時針。另外乙個需要注意的概念就是多邊形的凹凸性。一般而言,凸多邊形的演算法比凹多邊...