且听下回分说 2019-11-27 11:12 采纳率: 70%
浏览 252

这代码是什么意思(贝塞尔曲线)

第一段是初始化贝塞尔曲线,第二段是什么意思

void ActionBezierBy::InitWithTarget(RealObjectPtr target,
                                    float duration,
                                    const ccBezierConfig& c)
{
    ActionBase::InitWithTarget(target,duration);

    _config = c;

    _previousPosition = _startPosition = target->GetPosition();
}

bool ActionBezierBy::isDone() const
{
    return _elapsed >= _duration;
}

void ActionBezierBy::update(float time)
{
    if (_target)
    {
        float xa = 0;
        float xb = _config.controlPoint_1.x;
        float xc = _config.controlPoint_2.x;
        float xd = _config.endPosition.x;

        float ya = 0;
        float yb = _config.controlPoint_1.y;
        float yc = _config.controlPoint_2.y;
        float yd = _config.endPosition.y;

        float x = bezierat(xa, xb, xc, xd, time);
        float y = bezierat(ya, yb, yc, yd, time);

/*
#if CC_ENABLE_STACKABLE_ACTIONS
        Vec2 currentPos = _target->getPosition();
        Vec2 diff = currentPos - _previousPosition;
        _startPosition = _startPosition + diff;

        Vec2 newPos = _startPosition + Vec2(x,y);
        _target->setPosition(newPos);

        _previousPosition = newPos;
#else
*/
        _target->SetPosition(_startPosition + SexyVector3(x,y,0));
//#endif
    }
}

void ActionBezierTo::InitWithTarget(RealObjectPtr target,
                                    float duration,
                                    const ccBezierConfig& c)
{
    //ActionBase::InitWithTarget(target,duration);

    _toConfig = c;

    ActionBezierBy::InitWithTarget(target,duration,c);

    SexyVector2 start_pos = SexyVector2(_startPosition.x,_startPosition.y);

    _config.controlPoint_1 = _toConfig.controlPoint_1 - start_pos;
    _config.controlPoint_2 = _toConfig.controlPoint_2 - start_pos;
    _config.endPosition    = _toConfig.endPosition    - start_pos;
}
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-29 17:09
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥85 maple软件,solve求反函数,出现rootof怎么办?
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题