2016-12-04 9 views
1

こんにちは、初心者は、Pythonで。これを行う方法を理解できませんでした。 ポリゴンのリストとその頂点座標リストから特定のサブリスト項目を保持

リスト= [[1,2,3]、[1,4,5]、[1,3,3]、[2,7,8] 、[2,9,9]、[2,34,50]、[3,6,0]

各サブリストの最初の項目は識別子(ポリゴン番号)であり、残りの2つはポリゴンのその識別子または座標。

ポリゴン1とポリゴン2の重心を探したいと思います。ポリゴン3の場合は座標が1つしかないのでエラーになります。私はこれをどのようにして行うのですか?

+1

あなたはすでにどのようなコードを持っていますか? – alphaloop

+0

親リストから2つのリストを分離することができました。 1つのリストにはポリゴン識別子が含まれ、別のリストにはxとy座標のリストが含まれます。私の挑戦は、識別子が1であるすべてのポリゴンに対してx座標とy座標を選択する方法です。 – james

+0

私はこれを試してみます: for i:i [0] == 1の場合 0:len(i)の範囲のxの場合: x == 0の場合 続き print i [x]#これは文字列の最後の部分に印刷されるすべての数字である必要があります –

答えて

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)) 
関連する問題