OpenGL-非均匀有理B样条

什么是样条

样条 就是 分段低阶多项式来逼近多个点
假设我们有十个点 就需要用九次的多项式来逼近 九次多项式有十个未知数正好可以解一个方程组求出
分段的低阶多项式通过连续的连接来代替高阶多项式

什么是非均匀有理B样条

Non-Uniform(非均匀性):

是指一个控制顶点的影响力的范围能够改变。当创建一个不规则曲面的时候这一点非常有用。同样,统一的曲线和曲面在透视投影下也不是无变化的,对于交互的3D建模来说这是一个严重的缺陷。

Rational(有理):

是指每个NURBS物体都可以用有理多项式形式表达式来定义。

B-Spline(B样条):

是指用路线来构建一条曲线,在一个或更多的点之间以内插值替换的。

B样条曲线的数学表达式

在这里插入图片描述

B样条基函数 Bi,k(u)

k是k阶
i是第几个节点
u应该是表示节点
B样条基函数是一个称为节点矢量的非递减的参数u的序列所决定的k阶分段多项式 这个序列称为节点向量

所以这个节点向量是一个序列吗?
节点矢量和节点向量有什么区别
B样条基函数是一个节点向量决定的分段多项式

结点向量和控制顶点的关系

在这里插入图片描述

de Boor-Cos递推定义

原理

如果是k阶(k-1次)B样条基函数 构造一种递推公式
由0次构造1次 1次构造2次 2次构造3次这种

定义

在这里插入图片描述
从下面那个公式可以看出来 一个k阶的基函数是由两个低一阶的基函数构成 而当为1阶时 在ui-ui+1这个部分值就是1了
所以给我的感觉就是假设一个4阶的基函数就会不停的递归从4阶降到很多个一阶基函数 然后由这些一阶的就组成了4阶的基函数

Bi,k(u)的支撑区间

若确定第i个k阶B样条Bi,k(u)需要用到ui,ui+1,ui+k共k+1个节点 称[ui,ui+k]为Bi,k(u)的支撑区间
说白了就是这部分样条不为0的区间

B样条求出来的和贝赛尔曲线好像不一样 B样条求出来的好像是一个个节点向量 而贝赛尔曲线求出来的是一个个的点
在这里插入图片描述
动态图示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值