Как преобразовать кривую Безье в объект box2d? - PullRequest
1 голос
/ 23 февраля 2012

Я рисую линию, используя кривую Безье, и мне нужно преобразовать эту кривую Безье в объект box2d.Какой объект я могу использовать в box2d?какие-либо предложения?

1 Ответ

2 голосов
/ 07 мая 2012

Попытайтесь понять это ...

+(b2ChainShape)curveWithPoints:(CGPoint*)points Times:(int)times
{
    //points.count must be 3
    b2ChainShape shape;
    float step = 1/(float)times;
    float t = 0;
    b2Vec2 *p = new b2Vec2[times];
    b2Vec2 v1 = [CCMethod toMeter:points[0]];
    b2Vec2 v2 = [CCMethod toMeter:points[1]];
    b2Vec2 v3 = [CCMethod toMeter:points[2]];
    for(int i = 0;i < times;i++){
        b2Vec2 pa = v1;
        pa *= ( (t-1)*(t-1)*0.5 );
        b2Vec2 pb = v2;
        pb *= ( (-t)*t+t+0.5 );
        b2Vec2 pc = v3;
        pc *= ( t*t*0.5 );
        p[i] = pa+pb+pc;
        t+=step;
    }
    shape.CreateChain(p, times);
    return shape;
}

Единственное, что вам нужно сделать дальше, это создать тело и арматуру с этой формой.Я надеюсь, что это с надеждой ...

...