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;
}
相关推荐
花间相见2 分钟前
【Java基础面试题】—— 核心知识点面试题(含答案):语法+集合+JVM+设计模式+算法
java·jvm·设计模式
会飞De琥珀8 分钟前
java工具类,字符串转时间
java·开发语言
愣头不青28 分钟前
96.不同的二叉搜索树
数据结构·算法·leetcode
曹牧31 分钟前
JSON 数组的正确使用方式
java·服务器·前端
LINgZone231 分钟前
深入解析:Cglib与JDK动态代理的实现原理、区别及性能对比
java·开发语言
华科易迅39 分钟前
Spring JDBC
java·后端·spring
⁤⁢初遇44 分钟前
C语言数据结构---树
数据结构
AI科技星1 小时前
光速螺旋量子几何统一场论——基于 v ≡ c 公理的四大基本力全维度求导证明与精准数值验证
c语言·开发语言·人工智能·算法·机器学习·平面
云烟成雨TD1 小时前
Spring AI 1.x 系列【17】函数型工具开发与使用
java·人工智能·spring
ab1515171 小时前
3.27完成3(指针)、13、41、44(指针)、50、51、95、96、97
算法