2016-12-04 47 views
1

嗨,只是一个初学者在python中。无法弄清楚如何做到这一点。我有一个多边形及其顶点坐标列表保留列表中的特定子列表项目

list = [[1,2,3],[1,4,5],[1,3,3],[2,7,8] ,[2,9,9],[2,34,50],[3,6,0]]

每个子列表中的第一项是标识符(多边形编号),其余两个是该多边形的标识符或坐标。

我想找到多边形1和多边形2的质心。如果多边形3只有一个坐标,则会导致错误。我该怎么做呢 ?

+1

你已经有什么代码了? – alphaloop

+0

我能够从父列表中分离出两个列表。一个列表包含多边形标识符,另一个列表包含x和y坐标列表。我的挑战是如何选择标识符为1的所有多边形的x和y坐标,以此类推... – james

+0

我会试试这个: 我在列表中: 如果我[0] == 1: 对于范围内的x(0,len(i)): 如果x == 0: continue print i [x] #this应该是为字符串的最后部分打印的所有数字 –

回答

0

这将使你在一个给定的多边形点:

def get_polygon_points(polygon_id, points_list): 
    return [(x, y) for i, x, y in points_list if i == polygon_id] 

如果您写信find_centroid函数,它的坐标表(我会离开,给你),你可以撰写他们一起写这样的事情:

points_list = [[1,2,3],[1,4,5],[1,3,3],[2,7,8],[2,9,9],[2,34,50],[3,6,0]] 
centroid_1 = find_centroid(get_polygon_points(1, points_list))