Move CGPathCreateMutable () para que la ruta permanezca igual?

Tengo 9 sprites hexagonales en la pantalla y tengo que especificar un cierto camino a su alrededor para hacer que su área sea tocable. No quiero establecer las coordenadas para cada ruta respectivamente, así que ¿no puedo usar la primera ruta (los hexágonos son todos del mismo tamaño) y mover su origen a otra posición (sin destruir la forma)? (Si lo hago ahora, el CGPathAddLineToPoint (); agrega los puntos del hexágono del hexágono anterior. Espero haber entendido la idea ... (ver imagen ... NOTA: El octágono gris en la esquina superior derecha es el exactamente el mismo tamaño y forma que el negro) [Mover coordenadas y forma del camino] [1]

hex2TouchArea = CGPathCreateMutable ();

    CGPathMoveToPoint(hex2TouchArea, NULL, 150,157);
    CGPathAddLineToPoint(hex2TouchArea, NULL, 130, 198);
    CGPathAddLineToPoint(hex2TouchArea, NULL, 146, 236);
    CGPathAddLineToPoint(hex2TouchArea, NULL, 195, 236);
    CGPathAddLineToPoint(hex2TouchArea, NULL, 218, 197);
    CGPathAddLineToPoint(hex2TouchArea, NULL, 193, 157);
    CGPathCloseSubpath(hex2TouchArea);

aquí pongo una imagen que lo muestra en una imagen
http: //666kb.com/i/bz2ysevuw8n65rh3i.gi

*EDIT: obtuve la solución de la publicación y la cambié un poco: *

-(CGMutablePathRef) drawHexagon:(CGPoint)origin
{
    //create mutable path
    CGMutablePathRef path = CGPathCreateMutable();

    CGPathMoveToPoint(path, nil, origin.x, origin.y);

    CGPoint newloc = CGPointMake(origin.x - 20, origin.y + 42);
    CGPathMoveToPoint(path, NULL, newloc.x, newloc.y);
    CGPathAddLineToPoint(path, NULL, newloc.x + 16,newloc.y + 38);
    CGPathAddLineToPoint(path, NULL, newloc.x + 49, newloc.y + 0);
    CGPathAddLineToPoint(path, NULL, newloc.x + 23,  newloc.y - 39);
    CGPathAddLineToPoint(path, NULL, newloc.x - 25,newloc.y - 40);
    CGPathAddLineToPoint(path, NULL, newloc.x -43, newloc.y + 0);
    CGPathCloseSubpath(path);
    return path;   

}

Respuestas a la pregunta(2)

Su respuesta a la pregunta