2013-10-28 2 views
3

Моя проблема в том, что я хочу нарисовать линию, которая составляет ровно половину места касания т. Е. Я рисую линию на cctouchesmoved и рисует линию от первого места до моего касания место, но моя проблема в том, что мне нужно, чтобы отобразить линию только до половины сенсорному месте вот мой кодccDrawline до половины местоположения касания cocos2d

-(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 sharedDirector] convertToGL:location]; 

    point1 = location; 
    Point2=CGPointMake(size.width/2, size.height/2); 
} 

любая помощь будет принята с благодарностью.

+0

Не могли бы вы объяснить, что вы ожидаете, произойдет и то, что происходит, что отличается от того, чем ты ожидать? – godel9

ответ

1

дают две точки а и Ь, где а «происхождение»:

ccpMidPoint(a,b); 

или, в более общем плане, можно получить произвольное расстояние вдоль линии путем вычитания из Ь, умножая на желаемый фактор, а затем повторно добавить:

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

так, в вашем случае, point2 = а, point1 = б

+0

Спасибо, чувак, ccpMidPoint сделал трюк для меня .. –

Смежные вопросы