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;
}
相关推荐
Wang's Blog1 分钟前
Java框架快速入门: Spring Security+OAuth2之密码存储安全进化与实践
java·安全·spring
203号居民4 分钟前
LeetCode hot 100 — 138. 随机链表的复制
算法·leetcode·链表
小七在进步9 分钟前
C++入门(3)
android·java·c++
前端 贾公子11 分钟前
Milvus使用指南 (下)
java·服务器·前端
凌晨16814 分钟前
OpenCV(十一)人脸识别三大算法LBPH、EigenFace、FisherFace
人工智能·opencv·算法
步行cgn27 分钟前
OCP开闭原则:面向对象设计的核心原则
java·开发语言·开闭原则
落木萧萧82536 分钟前
MyBatis 启动的时候都在干什么:从 MappedStatement 说起
java·数据库·后端
en.en..37 分钟前
Linux wait()函数(预防僵尸进程)
java·大数据·开发语言
Thomas214341 分钟前
spark sort shuffer 和 hash shuffer 图解对比
算法·哈希算法
扬大平仔1 小时前
小深:用 AgentScope Java 2.0 Harness 做私人助手(上)
java·开发语言