python 实现鞋带算法


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))