Bezier曲线

1.Bezier曲线的定义

当用曲线段拟合曲线f(x)时,可以把曲线表示为许多小线段φi(x)之和,其中φi(x)称为基(混合)函数。

这些基(混合)函数是要用于计算和显示的。因此,经常选择多项式作为基(混合)函数,即:

贝塞尔把参数n次曲线表示为:

系数矢量(i=0,1,…,n)顺序首位相接,决定了从的轨迹。

比如在n = 1的条件下,,当t = 0时,p(0) = ,当然,t = 1时,p(1) =  。

那么在n = 2 的条件下,也会出现:当t = 0时,p(0) = ,t = 1时,p(1) =  ,只是轨迹不同。

那么那个决定轨迹的函数的形式是什么?

2.Bezier基函数的导出

Forest证明了Bezier曲线的基函数可以简化成伯恩斯坦基函数!

那么伯恩斯但基函数是啥?

伯恩斯但基函数:

一个连续函数 y=f(x),任给一个ξ>0,总能找到一个多项式和这个函数足够逼近。逼近的形式是:

表示从n个不同元素中,任取i(i≤n)个元素并成一组,叫做从n个不同元素中取出i个元素的一个组合,

其实:

3.重新定义Bezier曲线

针对Bezier曲线,给定空间n+1个点的位置矢量Pi(i=0,1,2,…,n),则Bezier曲线段的参数方程表示如下                                                      
                                                        

其中pi(xi,yi,zi),i=0,1,2…n 是控制多边形的n+1个顶点,即构成该曲线的特征多边形;是Bernstein
基函数。

Pi代表空间的很多点,t在0到1之间,把t代进去可以算出一个数--即平面或空间一个点随着t值的变化,点也在变化。当t从0变到1时,就得到空间的一个图形,这个图形就是bezier曲线。

4.Bezier曲线的举例

1)一次Bezier曲线

将n = 1带入上述式子,得到:

画图为:

  实质就是连接P0与P1的直线段

2)二次Bezier曲线

矩阵形式为:

图形为:

3)三次Bezier曲线

故三次Bezier曲线的图形为的线性组合。

矩阵形式:

其中,Mbe是三次Bezier曲线系数矩阵,为常数;Gbe是4个控制点位置矢量。

5.Bernstein基函数的性质

基函数形式为:

其实这些性质都是的性质

1)非负性

2)权性:

基函数有n+1项,n+1个基函数的和加起来正好等于1。

origin from(因为):

3)端点性质:

4)对称性

假如保持n次Bezier曲线控制多边形的顶点位置不变,而把次序颠倒过来,则此时曲线仍不变,只不过曲线
的走向相反而已

5)递推性

即n次的Bernstein基函数可由两个n-1次的Bernstein基函数线性组合而成。因为:
                                      

6)导函数

7)最大值

8)积分

9)降阶公式

10)升阶公式

6.Bernstein曲线的性质

1)端点性质

顶点p0和pn分别位于实际曲线段的起点和终点上。即p(0)(函数值) = (点),        p(1)  =

2)一阶导数

当t = 0 时:

当t = 1时:

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

3)几何不变性

Bezier曲线的形状仅与控制多边形各顶点的相对位置有关,而与坐标系的的选择无关

4)变差缩减性

若Bezier曲线的特征多边形是一个平面图形,则平面内任意直线与p(t)的交点个数不多于该直线与其特征多边
形的交点个数,这一性质叫变差缩减性质

Bezier曲线描述相关推荐

  1. Bezier曲线原理及实现代码(c++)

    一.原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计.贝塞尔曲线最初由 Paul de Casteljau 于 ...

  2. OpenGL程序VC框架:Bezier 曲线

    OpenGL程序VC框架:Bezier 曲线 下面以画一条 Bezier 曲线为例,详细介绍VC++ 上 OpenGL编程的方法.文中给出了详细注释,以便给初学者明确的指引.一步一步地按所述去做,你将 ...

  3. 轨迹规划——Bezier曲线与B样条曲线

    一.Bezier曲线 1.Bezier曲线的背景 给定n+1个数据点,p0~pn,生成一条曲线,使得该曲线与这些点描述的形状相符. (如果要求曲线通过所有数据点,则属于插值问题:如果只要求曲线逼近这些 ...

  4. bezier曲线解析与代码(c++)

    前言: 作为rhino重度用户,我对于nurbs建模早有耳闻,但对于何为nurbs却不得其解.最近借上<计算机辅助设计>课程的机会,对此作了一些深入的学习,于是在此记录一下一些课程笔记和课 ...

  5. 计算机图形学 实验7 《复杂图形绘制-Bezier曲线与Hermite曲线》

    计算机图形学 实验7 <复杂图形绘制-Bezier曲线与Hermite曲线> 一.实验目的 学习样条曲线的绘制. 二.实验内容 1.绘制Bezier曲线: 2.绘制Hermite曲线. 三 ...

  6. Bezier曲线原理

    一.原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计.贝塞尔曲线最初由Paul de Casteljau 于1 ...

  7. Bezier曲线原理—动态解释

    Bezier曲线原理 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线.一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖 ...

  8. 【XJTUSE计算机图形学】第三章 几何造型技术(2)——Bezier 曲线与曲面

    文章目录 [XJTUSE计算机图形学]第三章 几何造型技术(2)--Bezier 曲线与曲面 Bezier 曲线与曲面 Bezier 曲线的定义与性质 定义 习题 Bernstein基函数性质 Bez ...

  9. Bezier曲线简介

    Bezier曲线简介 Bezier曲线,又有人叫贝赛尔曲线,贝兹曲线,在计算机绘图中经常被用到,由于前些天事件要用到这个,所以就研究了下. 有了参考资料,其实也不是很复杂. 曲线的介绍(转自维基百科, ...

最新文章

  1. Request.ServerVariables参数集
  2. 源文件的编码会对编译结果有影响
  3. python 使用win32com 操作excel
  4. intellijidea课程 intellijidea神器使用技巧 6-1 Spring的关联
  5. P5020-货币系统【背包】
  6. JavaScript中错误正确处理方式,你用对了吗? 1
  7. 厉害了!中关村软件园人工智能军团有料有看点
  8. chrome本地文件加载跨域请求
  9. 词法分析与语法分析简介
  10. ESP32 开发笔记(十一)使用 ESP32 做为 WebServer
  11. 用matlab做一元线性回归画图,[转载]用matlab做一元线性回归分析
  12. 最小二乘支持向量回归Matlab实现
  13. 安卓WebView调起本地文件选择
  14. SpringBoot+zxing批量生成二维码_南国
  15. Illustrator快捷键全集
  16. 树莓派服务器U盘文件权限,抛弃SD卡,树莓派4的USB启动官方教程来了
  17. 通过微信开发测试号进行微信登录
  18. 警告: 检测到依赖关系环:_软件设计:依赖关系
  19. python namedtuple默认值_python 使用 namedtuple
  20. linux 行首加特定字符_linux shell 用sed命令在文本的行尾或行首添加字符

热门文章

  1. 新冠感染发病过程记录
  2. 红外遥控协议分析之:NEC协议
  3. 三天学会MySQL(八)子查询 索引
  4. ImageNet数据集的构建逻辑
  5. day03笔记 抽象类 和接口
  6. AEJoy —— 程序员入门 AE 的一些知识点整理【不定时更新】
  7. 暗斑怎么形成的_脸上有很多暗斑,怎么办?
  8. IMX8M系列 OpenCL FFT 示例编译及其他demo测试(MYD-JX8MX)
  9. Waf功能、分类与绕过
  10. 当你选择编程语言时你在选择什么