Cocos2d iphone 如何将bezier曲线转换为box2d对象?

Cocos2d iphone 如何将bezier曲线转换为box2d对象?,cocos2d-iphone,box2d,box2d-iphone,Cocos2d Iphone,Box2d,Box2d Iphone,我正在使用贝塞尔曲线绘制直线,我需要将贝塞尔曲线转换为box2d对象。我可以在box2d中使用哪个对象?有什么建议吗?试着理解一下 +(b2ChainShape)curveWithPoints:(CGPoint*)points Times:(int)times { //points.count must be 3 b2ChainShape shape; float step = 1/(float)times; float t = 0; b2Vec2 *p

我正在使用贝塞尔曲线绘制直线,我需要将贝塞尔曲线转换为box2d对象。我可以在box2d中使用哪个对象?有什么建议吗?

试着理解一下

+(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;
}
+(b2ChainShape)曲线带点:(CGPoint*)点次:(int)次
{
//点数。计数必须为3
b2链状形状;
浮动步长=1/(浮动)次;
浮动t=0;
b2Vec2*p=新的b2Vec2[次];
b2Vec2 v1=[CCMethod toMeter:点[0]];
b2Vec2 v2=[CCMethod-toMeter:points[1]];
b2Vec2 v3=[CCMethod-toMeter:points[2]];
for(int i=0;i
接下来需要做的唯一一件事是使用此形状创建实体和夹具。
我希望这对你是有希望的…

你能给我解释一下什么是pa,pb和pc吗?它们只是临时变量…这是一个关于二次贝塞尔的公式。。。你可以从计算机图形学学到更多。。。