code: def function(self,p):
          
          pg = p.generator
          motion_orientation=p.orientation+pi/2.0
  
          new_x = p.x+p.size*pg.x
          new_y = p.y+p.size*pg.y
  
          image_array = pg(xdensity=p.xdensity,ydensity=p.ydensity,bounds=p.bounds,
                           x=new_x + p.speed*p.step*np.cos(motion_orientation),
                           y=new_y + p.speed*p.step*np.sin(motion_orientation),
                           orientation=p.orientation,
                           scale=pg.scale*p.scale,offset=pg.offset+p.offset)
  
          return image_array
docs: Selects and returns one of the patterns in the list.