2017-01-02 54 views
0

下面的方法将变换代表在二维空间的长方形,其相应的中心点元组的列表:地图项目

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

要挑战自己,我想这样做,除了我'd将每个矩形映射到它的四个角落。就像:

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) 

现在的问题是,我试图将矩形映射到点列表,而不是“4点列表”的列表。我会怎么做?

回答

0

溶液是4点列表列表减少到点中的一个列表

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)