【几何】计算任意多边形面积
??給定一系列有序的線段(比如按順序給定每個線段的左端點坐標),求這些線段圍成的多邊形的面積,公式為:
??任意一個點與順序相鄰兩點組成的三角形面積之和
??分為凸多邊形和凹多邊形分別證明:
一、凸多邊形
??如下所示的凸多邊形,顯然是對的,因為所有三角形拼起來就是整個多邊形。
??Stotal=S△ABC+S△ACD+S△ADES_{total} = S_{△ABC} + S_{△ACD} + S_{△ADE}Stotal?=S△ABC?+S△ACD?+S△ADE?,每個三角形的面積通過向量的叉乘的 1/2 計算(兩個向量的叉乘幾何意義就是兩個向量組成的平行四邊形面積),也就是 S△ABC=12?AB→×AC→S_{△ABC} = \frac {1}{2} * \overrightarrow{AB} \times \overrightarrow{AC}S△ABC?=21??AB×AC (其他三角形同理)。
二、凹多邊形
??凹多邊形就不是那么顯而易見了,因為每段線段按順序和一個頂點相連后,很可能出現三角形覆蓋面積不是多邊形內部的情況出現,如下圖:
??這時,公式仍然是:Stotal=S△ABC+S△ACD+S△ADES_{total} = S_{△ABC} + S_{△ACD} + S_{△ADE}Stotal?=S△ABC?+S△ACD?+S△ADE?,這是因為三角形面積是有正負的!,S△ABCS_{△ABC}S△ABC? 的值由于 B 和 C 的順序關系,變成了負數,也就是說,多邊形面積應該是區域1 + 區域2,S△ABC=?3S_{△ABC} = -3S△ABC?=?3,S△ACD=3+2S_{△ACD} = 3 + 2S△ACD?=3+2,S△ADE=1S_{△ADE} = 1S△ADE?=1,所以 Stotal=S△ABC+S△ACD+S△ADE=?3+3+2+1=2+1S_{total} = S_{△ABC} + S_{△ACD} + S_{△ADE} = -3 + 3 + 2 + 1 = 2 + 1Stotal?=S△ABC?+S△ACD?+S△ADE?=?3+3+2+1=2+1,還是正確的。
??另外,不選用多邊形上的端點也是可以的,平民內任意點都是可以的。
總結
以上是生活随笔為你收集整理的【几何】计算任意多边形面积的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arcgis api 动态显示鼠标位置经
- 下一篇: MTK5G平台 MT6885/MT685