Nurbs曲线详解
来源:互联网 发布:免费下载我的淘宝 编辑:程序博客网 时间:2024/05/05 05:11
Nurbs曲线详解
摘自:http://www.win-cnc.com/htmlmodel/jswzxx/243580.html
NURBS(Non Uniform Rational B-spline)曲线通常称为非均匀有理B样条曲线,其数学定义如下:
基函数由递推公式定义:
非均匀:指节点向量的值与间距可以为任意值。这样我们可以在不同区间上得到不同的混合函数形状,为自由控制曲线形状提供了更大自由。均匀与非均匀的主要区别在于节点向量的值。如果适当设定节点向量,可以生成一种开放均匀样条,它是均匀与非均匀的交叉部分。开放样条在两端的节点值会重复d次,其节点间距是均匀的。例如:
{0,0,1,2,3,3},(d=2,n=3)
{0,0,0,1,2,2,2},(d=4,n=4)
开放均匀B样条与贝泽尔样条性质非常类似,如果d=n+1(即多项式次数为n),那么开放B样条就变成了贝泽尔样条,所有节点值为0或1。如四个控制点的三次开放B样条,节点向量为:{0,0,0,0,1,1,1}。
有理B样条:有理函数是两个多项式之比,有理样条(rationalspline)是两个样条函数之比,有理B样条用向量描述。
URBS曲线由以下三个参数定义:
(1) 控制点 :确定曲线的位置,通常不在曲线上,形成控制多边形。(见图1,图中)
图1 控制点移动对曲线的影响
(2) 权因子:确定控制点的权值,它相当于控制点的“引力”,其值越大曲线就越接近控制点(见图2,Bi为控制点)。
图2 曲线随权因子变化
(3) 节点矢量K:NURBS曲线随着参数K的变化而变化,与控制顶点相对应的参数化点K称为节点,节点的集合Ki:[K0,K1…,Kn…,Kn+m+1]称为节点矢量。
节点:在曲线上任意一点有多于一个控制点产生影响(除了bezier的端点),节点就象一种边界,在这个边界上一个控制点失去影响作用,另一个控制点取得影响。
2、NURBS曲线怎样通过首末节点
多重节点序列使得样条曲线更靠近于重复节点位置。如果末端节点重复d+1次,则d阶B-样条必须插值最后一个控制点。因此,解决样条曲线不能横跨整个控制顶点序列的一个方法是,重复首尾两个节点,这样得到的样条曲线将插值首尾两个控制点。
对于非周期的样条,节点矢量为
即节点矢量两端各有m+1个相同的节点,以便曲线通过控制多边形首、末端点,并与首、末两边相切。
(参考系统编程篇§2.7程序示例)
3、NURBS曲线轨迹的矩阵计算法及矩阵表示
因NURBS样条函数的节点参数沿参数轴的分布是不等距的,不同节点矢量形成的B样条基函数各不相同,需要单独计算,且算法中又增加了权因子,所以曲线轨迹点的计算较为复杂、费时,为了提高NURBS曲线插补的实时性,在实时插补前需进行必要的预处理,其主要任务是确定NURBS曲线轨迹计算公式的有关系数,以简化实时插补的计算量。
若曲线采用三次NURBS形式表示(三次与K次计算方法相同,表达式不同),即K=3, ,则第i段曲线可以写成下列矩阵形式:
整理可得:
由于控制点di及权因子Wi 均已知,而Mi仅与节点向量有关,也是确定的,Ci与Mi、Wi、di有关,即也是确定的,故式中各项系数均已知,且与插补点的参数无关,可在插补前一次性求出,因式中i的取值为3到n,所以对整条NURBS曲线,可计算出的系数共有n-2组,在插补中根据插补点所在的位置动态选用相应的系数。
对于曲线上坐标X、Y、Z分别有:
http://www.win-cnc.com/htmlmodel/jswzxx/243580.html
- Nurbs曲线详解
- NURBS曲线绘制
- NURBS曲线与曲面
- 什么是NURBS曲线
- NURBS曲线显示
- 均匀NURBS曲线显示
- 图形学基础:Bezier曲线到NURBS曲线
- 第十二讲 绘制NURBS曲线和曲面
- NURBS曲线 与 Rhinoceros曲面之王
- THREE.js -- Nurbs曲线调整实例
- OpenGL中如何绘制Bezier曲线和NURBS曲线
- OpenGL中如何绘制Bezier曲线和NURBS曲线
- NURBS
- nurbs
- Maya: 菜单 编辑NURBS >在曲面上投影曲线
- Bezier曲线、B样条和NURBS的基本概念
- 在UE4中模拟NURBS曲线和曲面
- [总结]3。B样条、三次样条和Nurbs曲线的插值算法
- nodejs封装的mysql链接数据库
- 回味经典——uboot1.1.6 之 第二阶段 第三阶段
- Java核心内库-线程-理解进程和线程
- iOS提交后申请加急审核
- Spark Cluster与Application中的重要概念以及如何提交应用spark-submit
- Nurbs曲线详解
- imageloader里边Configuration,DisplayImageOptions所有配置方法中文简介
- Xcode 证书文件存储目录
- Android webview图片点击事件 查看图片
- material和sharedMaterial
- NSNotificationCenter 中的addObserver和addObserverForName的释放问题。
- 【壁上观】AMD ZEN将至能战8核i7 Intel慌不慌?
- C#——类:索引器
- 无序向量