ccDrawline hasta la mitad de la location táctil cocos2d

Mi problema es que quiero dibujar una línea que sea exactamente la mitad de la location táctil, es decir, estoy dibujando una línea en cctouchesmoved y está dibujando una línea desde la primera location a mi location táctil pero mi problema es que necesito mostrar solo la línea Hasta la mitad de la location táctil aquí es mi código

-(void)draw{ glEnable(GL_LINE_SMOOTH); glLineWidth(3.0f); // set line width glColor4f(0.8, 1.0, 0.76, 1.0); // set line color. ccDrawLine(point1,Point2); } -(void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch* touch = [touches anyObject]; CGPoint location = [touch locationInView: [touch view]]; location = [[CCDirector shanetworkingDirector] convertToGL:location]; point1 = location; Point2=CGPointMake(size.width/2, size.height/2); } 

cualquier ayuda será apreciada.

dar dos puntos, a y b, donde a es el 'origen':

 ccpMidPoint(a,b); 

o, más en general, podría get una distancia arbitraria a lo largo de la línea restando a de b, multiplicando por el factor deseado, luego volviendo a agregar a:

 float percentageOfDistanceAlongLine = 0.5f; CGPoint pointAlongLine = ccpMult( ccpSub(b, a), percentageOfDistanceAlongLine); pointAlongLine = ccpAdd(a, pointAlongLine); 

entonces, en su caso, point2 = a, point1 = b