3

我的问题是我想画一条正好是触摸位置一半的线,即我在 cctouchesmoved 上画一条线,它正在从第一个位置到我的触摸位置画一条线,但我的问题是我只需要显示这条线直到触摸位置的一半是我的代码

-(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);
}

任何帮助将不胜感激。

4

1 回答 1

1

给出两点 a 和 b,其中 a 是“原点”:

ccpMidPoint(a,b);

或者,更一般地说,您可以通过从 b 中减去 a,乘以所需因子,然后重新添加 a,从而获得沿线的任意距离:

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

所以,在你的情况下,point2 = a,point1 = b

于 2013-10-28T14:22:12.863 回答