3

私の問題は、タッチ位置のちょうど半分の線を描きたいということです。ここのタッチ位置の半分までが私のコードです

-(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 の 2 つの点を指定します。ここで、a は 'origin' です。

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 に答える