Bezier(贝塞尔)曲线小总结

article/2025/11/9 18:10:10

在初学时,我发现Bezier曲线(中文名贝塞尔曲线,想要了解历史发展等的可以看此百度百科:贝塞尔曲线_百度百科)很难理解,故在此写了一篇自己的心得感悟。要理解它最重要的是理解Bernstein基函数。首先,书上边的定义应理解为:对于有n+1个控制点(n至少为1且必须是整数)的n次贝塞尔曲线(三次最为常用因为是自由曲线且相对于多次没那么复杂),其矢量表示为

 这儿Pi就是值的编号为0-n的控制点,后面紧跟基函数。每个贝塞尔曲线均可以用此矢量公式来表示(方便转为矩阵表示)。现在我们来分析基函数(我的教材孔令德编著的计算机图形学基础教程第二版)。

 首先我们要搞懂贝塞尔曲线的本质和什么是矢量方程(书上都没说)。对此可以参考这篇博客了解贝塞尔曲线的基础贝塞尔曲线简单介绍_xiaozhang2019的博客-CSDN博客_贝塞尔曲线 ,写的很好。大概就是说第一条任选中间一点然后每条条按照相同的比例选点,各点连接再按此比例,所形成的点的集合就是我们贝塞尔曲线的点集,在一些题目中如果我们不想用公式性质其实可以用这个来解题。然后,什么是矢量方程?在平面坐标系中,矢量方程中指的矢量就是原点连接我们曲线上的一点所形成的矢量的方程,而在参数方程中,每一个参数t对应一个x,y坐标,对应一个矢量,所以就有了矢量参数方程(分为x和y的部分,不同分开写,相同可以合并写表示矢量)。因此其实矢量方程和我们曲线的点方程是很相似的,它的好处就是方便写出矩阵形式(矩阵形式就是把参数矢量方程写成矩阵相乘而已本质一样)且简洁。

然后看基函数公式,t要在0到1的闭区间之间,原因是我们把公式展开,会发现t的值代表的就是我们贝塞尔曲线上的矢量的位置,t=0必定是起点P0,t=1必定是终点P1(所以基函数具有非负性),所以t的范围为0到1。反之带入不同的参数,用P0,P1作为基准点就可以画出曲线(初学分析时P0,P1可各看成矢量,矢量相加到曲线上点与原点的矢量,也可作出图)。另外基函数本身是分别对应各个点(P0的基函数,P1...),n次贝塞尔曲线就有n各基函数,与点矢量各自相乘再相加就得到整体的公式,代入t画矢量得到曲线点。到这儿就应该真正理解了。

最后根据公式代入特殊值或展开以及展开后按t的变化画的曲线就可以得到贝塞尔曲线的各种性质。前面理解了这儿就相对容易,这儿我挑几个不好理解的地方讲。

基函数的权性:所有基函数的和恒等于1。

基函数的下标:下标i,n应该看成是一个整体,而不局限与i,n,比如n-i-1,n-1,n-i是指从n-1开始到0的基函数,n-1为次数(基函数的个数永远为次数+1。对应的点可以改变。注意,一直以来我说的基函数对应点,只是说的加权和时基函数与应与那个点组合相乘,实际上时每个点都有基函数的取值,因为t的值才是对应每个点)。算的时候下标变了代入原公式算就行。

基函数没有意义如下标为n,n-1时,默认为0。

参数矢量方程的求导,除非矢量未知,否则实际上就是对参数t求导。


http://chatgpt.dhexx.cn/article/FVpfUBLi.shtml

相关文章

Bezier曲线原理—动态解释

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

正确的Bezier曲线的绘制

原文地址:http://blog.csdn.net/mylovestart/article/details/8434310 Bezier曲线是参数多项式曲线,它由一组控制多边形折线(控制多边形)的顶点唯一定义,在控制多边形的各顶点中,只有第一个和最后一个顶点在曲线上,其他的顶点则用以定义曲线的导数,阶次和形状 Bezier曲线的数…

根据Bezier曲线的定义公式实现Bezier曲线的绘制

Bezier曲线的定义公式 Pi是曲线上点的坐标(x,y,(z0)), Bi,n(t)伯恩斯坦公式,绘制Bezier曲线的第一种方法是根据这个公式来绘制。首先看看绘制的效果: (1)计算定义中多项式的值 首先要求伯恩斯…

Bezier曲线描述

Bezier曲线 1.Bezier曲线的定义 当用曲线段拟合曲线f(x)时,可以把曲线表示为许多小线段φi(x)之和,其中φi(x)称为基(混合)函数。 这些基(混合)函数是要用于计算和显示的。因此,经常选择多项式…

Bezier曲线的绘制

Bezier曲线是参数多项式曲线,它由一组控制多边形折线(控制多边形)的顶点唯一定义,在控制多边形的各顶点中,只有第一个和最后一个顶点在曲线上,其他的顶点则用以定义曲线的导数,阶次和形状 Bezier曲线的数学基础是能够在第一个和最后一个顶点之间进行插值的一个多项式混合函数,…

Bezier曲线的生成算法

Bezier曲线的生成方法 生成一条Bezier曲线实际上就是要求出曲线上的点。 1.根据定义直接生成Bezier曲线 定义: 其中 那么生成步骤为: ①首先给出 的递归计算式: ②:将表示成分量形式 由于的计算量大,算法效率不高…

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

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

Bezier曲线构造

Bezier曲线构造 曲线公式 曲 线 : C ( u ) ∑ i 0 n B n , i ( u ) P i 基 函 数 : B n , i n ! i ! ( n − i ) ! u i ( 1 − u ) n − i 曲线:C(u) \sum^n_{i0}B_{n,i}(u)P_i\\ 基函数:B_{n,i}\frac{n!}{i!(n-i)!}u^i(1-u)…

java版 贝塞尔曲线算法

public void test() {CvPoint controlPoint[] new CvPoint[4];controlPoint[0] new CvPoint(50, 60); //起点controlPoint[1] new CvPoint(130, 200); //控制点controlPoint[2] new CvPoint(300, 360); //控制点controlPoint[3] new CvPoint(400, 600); //终点int n cont…

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

http://devres.zoomquiet.io/data/20110728232822/index.html Bezier曲线原理及实现代码(c) 一、原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔贝塞尔(Pierre Bzier)所广泛发表,他运用贝塞尔曲线…

用Java实现可交互的贝塞尔曲线(Bezier curve)

关于贝塞尔曲线的详细数学原理及公式可参考: 贝塞尔曲线_百度百科 我们来谈谈贝塞尔曲线 本文给出了一种用Java实现贝塞尔曲线的方法,并且可以用鼠标拖动改变锚点。 效果演示图: 这里引用百度百科给出的公式: 二次方公式 三次方…

Bezier曲线简介

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

Bezier曲线原理及其代码实现

Bezier曲线原理及实现代码(c) 一、原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔?贝塞尔(Pierre B?zier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由 Paul de Cast…

Bezier曲线及其性质

本文为Bezier曲线mooc教程学习笔记。 目录 Bezier曲线与曲面[1] Bezier曲线的背景[2] Bezier曲线[3] Bezier曲线详细定义[4] Bezier曲线举例[5] Bernstein 基函数性质[6] 贝塞尔曲线的性质[7] Bezier曲线的生成[8] Bezier曲线的拼接[9] Bezier曲线的升阶与降阶 Bezier曲线与曲面…

Bezier曲线原理

一、原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔贝塞尔(Pierre Bzier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由Paul de Casteljau 于1959年运用de Casteljau 算法开发,以稳…

如何将多张图片合成一个pdf?

如何将多张图片合成一个pdf?平时我们都喜欢将word或者ppt文件转换成pdf后再使用,除此之外,我们还会将多张图片合并转换成pdf文件,大家会用什么方法将图片合并成pdf呢?我相信有很多小伙伴会使用这个方法,先将…

怎么把四个图片合成一个图片?

怎么把四个图片合成一个图片?关于图片的合成,我们一般都会用到图片处理软件来进行。但是对于一些职场新人来说,他根本不会用一些专业的图片处理软件,那么这个问题对他来说就是非常棘手的。其实遇到这样的问题,新人朋友…

python将多张图片合并成一张图片

文章目录 说明:合并图片的三个过程1、参考原博主的:2、优化第一个数量问题:3、优化俩个问题(数量不限性状按比例变小)4、优化黑行高度问题5、合成图片不清晰问题:总结下: 说明: 今天…

如何把一张图片分割成几张

把一张图片分割成几张的方法: 工具/原料:硬件:电脑、软件:Photoshop 7.0、系统:Windows10专业版64位操作系统。 1、打开平PS,进入新建文档里面,然后把图片直接拉到界面中。或者直接打开图片。 2…

jpg怎么合成一份_如何将多张图片合成一个文件

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 将多张图片合成一个文件的方法是: 1、将所有图片拖到一个文件夹里,鼠标右键点击“添加压缩”。 2、点击确定,这样就成了一个文件。 计算机(compu…