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;
}
相关推荐
AI科技星几秒前
为什么变化的电磁场才产生引力场?—— 统一场论揭示的时空动力学本质
数据结构·人工智能·经验分享·算法·计算机视觉
O***P5713 分钟前
记录 idea 启动 tomcat 控制台输出乱码问题解决
java·tomcat·intellij-idea
7***47714 分钟前
在2023idea中如何创建SpringBoot
java·spring boot·后端
2***c4358 分钟前
解决 IntelliJ IDEA 中 Tomcat 日志乱码问题的详细指南
java·tomcat·intellij-idea
j***78889 分钟前
【Spring】IDEA中创建Spring项目
java·spring·intellij-idea
豆沙沙包?20 分钟前
2025年--Lc293-784. 字母大小写全排列(回溯)--java版
java·开发语言
q***996327 分钟前
【MyBatisPlus】MyBatisPlus介绍与使用
java
豆奶特浓631 分钟前
Java面试生死局:谢飞机遭遇在线教育场景,从JVM、Spring Security到AI Agent,他能飞吗?
java·jvm·微服务·ai·面试·spring security·分布式事务
TheLegendMe1 小时前
贪心+线程安全单例
算法·哈希算法
前端世界1 小时前
float 还是 double?用储罐体积计算带你看懂 C 语言浮点数的真实世界坑
java·c语言·开发语言