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;
}
相关推荐
xxxxxmy1 分钟前
相向双指针—三数之和
python·算法·相向双指针
Blossom.1182 分钟前
基于知识图谱+LLM的工业设备故障诊断:从SQL日志到可解释推理的实战闭环
人工智能·python·sql·深度学习·算法·transformer·知识图谱
白露与泡影2 分钟前
大厂Java面试前复习的正确姿势(800+面试题附答案解析)
java·开发语言·面试
N***p3653 分钟前
Springboot项目中线程池使用整理
java·spring boot·后端
asom224 分钟前
互联网大厂Java全栈面试故事:从Spring Boot、分布式到AI业务场景深度剖析
java·spring boot·分布式·缓存·微服务·消息队列·面试经验
conkl6 分钟前
梅森旋转算法深度解析:构建更健壮的前端请求体系
前端·算法·状态模式
程序定小飞8 分钟前
基于SpringBoot+Vue的常规应急物资管理系统的设计与实现
java·开发语言·vue.js·spring boot·后端·spring
t梧桐树t8 分钟前
spring AI都能做什么
java·人工智能·spring
R***z1018 分钟前
Spring容器初始化扩展点:ApplicationContextInitializer
java·后端·spring
好好研究13 分钟前
SSM整合(一)
java·spring·mvc·mybatis·db