from pprint import pprint
point_list = [(0, 0), (1, 0), (1, 1), (0, 1)]
def shoelace_func(point_list):
# todo 数据校验
length = len(point_list)
result = 0
for i in range(length):
if i == length - 1:
result += (point_list[i][0] * point_list[0][1] - point_list[i][1] * point_list[0][0])
else:
result += (point_list[i][0] * point_list[i + 1][1] - point_list[i][1] * point_list[i + 1][0])
return abs(0.5 * result)
if name == "main" : pprint(shoelace_func(point_list))