中国农业大学-赵明老师-计算机图形学-moochttps://www.bilibili.com/video/BV1Dt411f7Qj?p=11

目录

bezier

bezier 曲线定义

bernstein基函数的性质

bezier 曲线的性质

spline

spline定义


一、bezier

1.1 bezier 曲线定义

给定空间中n+1个点, ,  叫 n阶n次, 阶数和次数相同,一般说次,阶次概念和spline 不一样, 伯恩斯坦基参数方程为

参数为t, t在 0到1 之间;随着t 的变化,得到bezier 曲线

两个控制点,1次多项式

三个控制点,2次多项式

四个控制点,3次多项式

1.2 bernstein基函数的性质

  1. 正性  > 0, t ∈ (0,1);  = 0 t = 0,1
  2. 权性, 基函数有n+1项(和控制点数相同), n+1个基函数的和 正好等于1

3. 端点性质,  保证过第一个点和最后一个点

4. 对称性

n 次伯恩斯坦基 由 2 个 n-1次伯恩斯坦基 比例相加组成

5. 递推性

1.3 bezier 曲线的性质

一阶导数

说明bezier曲线的起点和终点处的切线方向和特征形的第一条边以及最后一条边的走向一致;

1.4 de casteljau 递推公式求解

避免了求解阶乘的负担, 阶次递归增加, 等比例计算

> i: 控制点索引

k: 次(j阶数)数,

比如三次样条

1次: P0 - P1 生成直线P01,   P1-P2 生成直线P12, P2-P3 生成直线P23

2次:P01-P12 生成直线P01_12, P12 - P23 生成直线P12_23

3次:  三次直线方程,按比例求即可。

二、spline

spline定义

样条: 分段连续多项式

阶次:K阶 k-1次

支撑区间, bezier 支撑区间是[0,1], spline 支撑区间是k阶,k+1个点

比如,有n+1个点, n+1个点有n个小区间,每两点之间(每个小区间)构造一条多项式(比如三次),这样就有n个三次多项式, 段与段之间要求两次连续(三次多项式有的属性), 这就是三次样条

样条和贝塞尔数学表达式的最大区别在B上,样条的B与定点n+1没有关系,只与K阶有关;

同时u的取值也不同

B_i,k(u)称为K阶(k-1次)B样条基函数

K是刻画次数的,k可以是2到控制点个数n+1之间的任意整数

B样条基函数是一个称为节点矢量的非递减参数u的序列所决定的k阶分段多项式,这个序列称为节点向量。节点向量个数等于“阶数+顶点”

u_0,  ...,     u_n+k-1, u_n+k

B样条基函数 de boor_Cox 递推构造,由0次构造1次, 1次构造2次, 2次构造3次...

为了获得第i个K阶B样条B_i,k(u), 需要用到u_i,...u_i+k共k+1个节点, 称为区间[u_i, u_i+k] 为B_i,k(u)的支撑区间

三、多项式最小二乘回归

least-square polynomial fitting using C++ Eigen Package

四、 cubic spline 三次样条曲线插值, 非deboor-cox 方法

HIT-三次样条曲线

知乎-半杯茶

无人驾驶汽车系统入门(二十)——基于自由边界三次样条插值的无人车路径生成

五、Cubic Spline interpolation in C++, tk::spline 开源

kluge-spline

bezier + spline相关推荐

  1. RANSAC Spline Fitting

    在车道线检测中,通过一系列的点可以拟合出曲线,这儿介绍一下比较常用的随机抽样一致性方法进行三次样条曲线拟合的方法. 三次样条曲线可以通过四个点来定义,分别选取始末点为P0.P3,通过P1.P2控制曲线 ...

  2. C#绘制带控制点的Bezier曲线,用于点阵图像及矢量图形

    [摘要]不借助第三方, 使用c# + GDI+进行SVG等绘图,绘制带控制点的Bezier曲线.可用于点阵图像及矢量图形(如SVG)绘图.先看效果: (不知为何,已两次上传图片,无法显示,求助csdn ...

  3. java画bezier曲线,解析在Direct2D中画Bezier曲线的实现方法

    Direct2D通过因此,想要使用Direct2D绘制一段通过指定点的曲线,比如Bezier曲线,必须借助于C#的代码可以很容易的转换成C++版本的,下面是我转换的一个用于Direct2D的绘制Bez ...

  4. 车道线检测(opencv)

    بسم الله الرحمن الرحيم MOHAMED ALY California Institute of Technology 1200 E. California Blvd MC 136 ...

  5. Apollo进阶课程㉕丨Apollo规划技术详解——Optimization Inside Motion Planning

    原文链接:进阶课程㉕丨Apollo规划技术详解--Optimization Inside Motion Planning 在自动驾驶软件的开发中,运动规划是最核心的模块之一.它将综合感知.定位和地图等 ...

  6. Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment

    原文链接:进阶课程㉔丨Apollo 规划技术详解--Motion Planning Environment 自动驾驶汽车核心技术包括环境感知.行为决策.运动规划与控制等方面.其中,行为决策系统.运动规 ...

  7. MiniGUI中的几个画线函数

    之前的项目中有场景需要绘制曲线,但是当时没有解决,用折线代替的,今天下午借助官方demo,又看了下minigui中的几个画线函数,这里记录一下(lineTo,moveTo, lineEx暂不解释,看官 ...

  8. 第05章 图形基础

    图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视讯显示器和打印机上显示图形.正如您所认为的那样,GDI是Windows非常重要的部分.不只 ...

  9. 三维空间刚体运动4-3:四元数线性插值方法:Squad

    三维空间刚体运动4-3:四元数线性插值方法:Squad Squad的引出 B e ˊ z i e r c u r v e B\acute{e}zier \space curveB e ˊ zier c ...

最新文章

  1. c语言程序可以单独编译,c语言中的函数可不可以单独进行编译?_后端开发
  2. 我的技术回顾那些与ABP框架有关的故事-2018年
  3. 方法的重载(overload)和重写(override)的区别
  4. 【BZOJ1834】【codevs1362】网络扩容,最大流+费用流
  5. Android 系统(74)---Android手势触摸事件的分发和消费机制
  6. 【看这一篇就够了】如何删除gitHub仓库中的文件
  7. iOS面试题大全66-85
  8. 解析UML的要点与应用
  9. 一个敲有趣的R语言拼图工具
  10. 1068 万绿丛中一点红 (20分)测试点分析
  11. Item25 Use std::move on rvalue reference, std::forward on universal references
  12. 神经机器翻译的前世今生--转自散文网
  13. 通过搜狗抓取微信公众号--------破解url
  14. 让百度快速收录新网站的方法是什么 让百度快速收录新网站的方法有哪些
  15. JS中获取元素的方法
  16. 玩《Minecraft我的世界》学python编程,可免费领|取电子学习版本
  17. Nginx使用及可能遇到问题
  18. Linux系统解决OSDLyrics搜索显示的中文歌词名乱码问题
  19. C++如何实现系统语言切换功能,MessageBox的确认/取消按钮语言显示如何跟程序一致
  20. JCJC错别字检测系统API接口使用文档-错别字检测接口说明

热门文章

  1. python实现将pdf文件转为jpg图片文件的总结
  2. 微信小程序 java银行业务管理系统python php
  3. 用华为模拟器ENSP模拟MUX-vlan
  4. Springboot整合Poi导出excel(注解版)
  5. SylixOS中的线程【5】--- 线程结束
  6. android ble 区别,BLE中这些概念你都了解吗-通信/网络-与非网
  7. 大疆无人机5G图传 无人机视频回传指挥中心 WB7000MD-3K
  8. JS学习-创建对象练习
  9. VS CODE 安装vetur后不生效问题解决
  10. 职场必备书籍:《麦肯锡工作法套装四册轻松职场系列》推荐