2017-01-02 4 views
0

Die folgende Methode eine Liste von Tupeln repräsentieren Rechtecke in 2D-Raum, um ihre entsprechenden Mittelpunkte verwandeln:Map Artikel auf mehrere Artikel Pythons Karte mit

def centers(xywh): 
    return map(lambda xywh: [xywh[0]+xywh[2]/2.0,xywh[1]+xywh[3]/2.0], xywh) 

mich selbst herauszufordern wollte ich das gleiche tun, außer ich Ordne jedes Rechteck seinen 4 Ecken zu. Etwas wie:

def corners(xywh): 
    return map(lambda xywh: [[xywh[0],xywh[1]],[xywh[0],xywh[1]+xywh[3]],[xywh[0]+xywh[2],xywh[1]+xywh[3]],[xywh[0]+xywh[2],xywh[1]]] , xywh) 

Das Problem ist jetzt, dass ich versuche, die Rechtecken zur Liste der Punkte auf der Karte, anstatt eine Liste von einer „4-Punkteliste“ s. Wie würde ich das tun?

Antwort

0

die Lösung ist, die Liste von 4 Punkten Liste an eine Liste von Punkten

def corners(xywh): 
    t=map(lambda xywh: [[xywh[0],xywh[1]],[xywh[0],xywh[1]+xywh[3]],[xywh[0]+xywh[2],xywh[1]+xywh[3]],[xywh[0]+xywh[2],xywh[1]]] , xywh) 
    return reduce(lambda a,b: a+b, t) 
zu reduzieren,
Verwandte Themen