bezier + spline

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

目录

bezier

bezier 曲线定义

 bernstein基函数的性质

bezier 曲线的性质

spline

spline定义


一、bezier

1.1 bezier 曲线定义

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

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

两个控制点,1次多项式

三个控制点,2次多项式

四个控制点,3次多项式

 1.2 bernstein基函数的性质

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

\sum_{i=0}^{n} B_{i,n}(t) \equiv 1, t \in (0,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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值