N阶Bezier

cpp 复制代码
deque<QPointF> mapToolCurve::getBezier(deque<QPointF>& cps)
{
    deque<QPointF> _resp;

    for (double t = 0.0; t < 1.0; t += 0.01)
    {
        auto pointf = getBezierLoop(cps, t);
        _resp.emplace_back(pointf);
    }

    return _resp;
}

QPointF mapToolCurve::getBezierLoop(deque<QPointF>& cps,double t)
{
    QPointF outPoint;
    deque<QPointF> newCps;
    for (size_t i = 0; i < cps.size() - 1; i++)
    {
        auto p = cps[i] + (cps[i + 1] - cps[i]) * t;
        newCps.emplace_back(p);
    }

    if (1 == newCps.size())
    {
        return newCps[0];
    }else
    {
        outPoint = getBezierLoop(newCps,t);
    }
    return outPoint;
}
相关推荐
带土12 分钟前
14. 某马数据结构整理(2)
数据结构
OKkankan8 分钟前
多态概念及使用
开发语言·数据结构·c++·算法
nn在炼金11 分钟前
FlashAttention 1 深度解读:原理、价值、应用与实战
人工智能·算法
lxh011312 分钟前
合并K个升序链表题解
前端·数据结构·链表
MacroZheng19 分钟前
取代Navicat!全新一代数据库管理工具来了,超级智能!
java·后端·mysql
WHS-_-202221 分钟前
Channel Estimation for mmWave High-Mobility Systems With 5G New Radio OFDM (I)
算法·5g
w***i29422 分钟前
Spring Boot实现定时任务
java·spring boot·后端
.格子衫.25 分钟前
026动态规划之跨步DP——算法备赛
算法·动态规划
roman_日积跬步-终至千里25 分钟前
【模式识别与机器学习(7)】主要算法与技术(下篇:高级模型与集成方法)之 扩展线性模型(Extending Linear Models)
人工智能·算法·机器学习