计算几何中的三角形面积
在计算几何里,我们知道,△ABC的面积就是“向量AB”和“向量AC”两个向量叉积的绝对值的一半。其正负表示三角形顶点是在右手系还是左手系。
所以得到三角形面积:
注意:该方法得到是有向面积(有正负),有向面积A比面积S其实更本质!
由三角形推广到任意多边形
任意一个n边形可以被分成n个三角形
三角形面积:
将点作为坐标原点,可以化简为
所以有如下公式:
假设有n个角点,坐标分别为(,)……(,)那角点依次连线围成的面积就是
def get_area(locations):
area = 0.0
for i in range(len(locations)):
lat = locations[i][0] # 纬度
lng = locations[i][1] # 经度
if i == len(locations)-1:
lat1 = locations[0][0]
lng1 = locations[0][1]
else:
lat1 = locations[i+1][0]
lng1 = locations[i+1][1]
area += (lat*lng1 - lng*lat1)/2.0
return abs(area)
if __name__ == '__main__':
locations = [[116.568627,39.994879],[116.564791,39.990511],[116.575012,39.984311]]
print(get_area(locations))