显示标签为“B-spline”的博文。显示所有博文
显示标签为“B-spline”的博文。显示所有博文

2026-05-30

Bézier-curve

1. Bézier
	1.1 应用
	1.2 复合贝塞尔曲线
	1.3 有理贝塞尔曲线 Rational Bézier curves
	1.4 Degree 阶数与控制点
	1.5 Bézier 曲线示意图
2. B-spline
3. NURBS

 以下是维基百科笔记,更详细的内容请看各章开头的维基百科链接。

1. Bézier

Bézier curve 贝塞尔曲线(/ˈbɛz.i.eɪ/,法语发音:[ bezje ] )是一种参数曲线,广泛应用于计算机图形学及相关领域。
一组离散的“控制点”通过公式定义了一条光滑连续的曲线。
贝塞尔曲线以法国工程师皮埃尔·贝塞尔(Pierre Bézier,1910-1999)的名字命名,他在20世纪60年代将其用于雷诺汽车车身曲线的设计。贝塞尔曲线于1962年,由皮埃尔·贝兹所广泛发表。
贝塞尔曲线最初由保尔·德·卡斯特里奥于1959年运用德卡斯特里奥算法开发,以稳定数值的方法求出贝塞尔曲线。

通常,贝塞尔曲线用于近似现实世界中没有数学表示、表示方法未知或过于复杂的形状。
贝塞尔曲线可以组合形成贝塞尔样条曲线 Bézier spline,也可以推广到更高维度形成贝塞尔曲面 Bézier surfaces。
更高维度的广泛化贝塞尔曲线就称作贝兹曲面,其中贝兹三角 Bézier triangle 是一种特殊的实例。

1.1 应用

  • 电脑绘图,贝塞尔曲线是矢量图形 vector graphics 文件和相应软件(如PostScript、PDF等)能够处理的唯一曲线,用于光滑地近似其他曲线。
  • 电脑动画,贝塞尔曲线常用于定义 3D 路径以及用于关键帧插值的 2D 曲线,应用程序会创建物体沿该路径运动所需的帧。。
  • 贝塞尔曲线现在非常常用于控制CSS、JavaScript、JavaFX和Flutter SDK中的动画缓动效果。
  • 机器人技术,例如,焊接臂的运动应该平稳,以避免不必要的磨损。
  • 字体
    • TrueType字体使用由二次贝塞尔曲线组成的复合贝塞尔曲线。
    • 其他语言和图像工具(例如PostScript、Asymptote、Metafont和SVG)使用由三次贝塞尔曲线组成的复合贝塞尔曲线来绘制曲线形状。
    • OpenType字体可以使用任何类型的曲线,具体取决于 OpenType 封装器所采用的字体技术。

1.2 复合贝塞尔曲线

高阶曲线的计算成本更高。当需要更复杂的形状时,可以将低阶贝塞尔曲线拼接在一起,生成复合贝塞尔曲线。
在矢量图形语言(如PostScript)、矢量图形标准(如SVG)和矢量图形程序(如Artline、Timeworks Publisher、Adobe Illustrator、CorelDraw、Inkscape和Allegro)中,复合贝塞尔曲线通常被称为“路径”path。
路径不受栅格化图像的限制,并且易于修改。

转换
对贝塞尔曲线进行扫描转换(栅格化)的最简单方法是在多个紧密排列的点上评估曲线,然后对近似的线段序列进行扫描转换。
然而,这种方法并不能保证栅格化输出足够平滑,因为点之间的间距可能过大。
反之,在曲线接近直线的区域,这种方法可能会生成过多的点。

1.3 有理贝塞尔曲线 Rational Bézier curves

有理贝塞尔曲线通过添加可调节的权重来更精确地逼近任意形状。该权重定义了该点对曲线的“吸引力”。
其分子是加权伯恩斯坦形式的贝塞尔曲线,分母是伯恩斯坦多项式的加权和。
有理贝塞尔曲线的用途之一是精确表示圆锥曲线的线段,包括圆弧。
普通贝塞尔曲线是有理贝塞尔曲线的一种特殊情况,其中所有权重都相等。
有理贝塞尔曲线为设计者提供了更多选择,但代价是算法更复杂,需要跟踪更多数据。

1.4 Degree 阶数与控制点

  • Bézier 曲线的控制点,可以理解为端点,但只有2头的端点作为曲线的起始和终止点,其他中间端点通常不在曲线上。
  • Bézier 曲线的Degree 阶数,或翻译为次数,这里的“次”指的是用于贝塞尔曲线的多项式混合函数中的最高指数。

贝塞尔曲线可以是任意次数的。一次曲线是一条简单的直线,有两个控制点。
二次曲线是一条圆弧,有三个控制点。次数越高,控制点越多,可以绘制出越复杂的形状。
但同时,由于每个控制点都会影响整条曲线,因此使用起来也更加困难。

1.5 Bézier 曲线示意图

控制点 Degree 阶数 Gif 补充说明 Bézier/贝塞尔/贝兹 构造描述
2 一阶 / 线性
linear /
First-order
直线 line 随时间变化(0~1) 从控制点1向控制点2移动描绘出的曲线。
3 二 阶/次
quadratic /
Second-order
抛物线 parabola
圆锥弧 conic arcs
字体: TrunType
设置2个随时间移动的中间点,
模拟2段随时间变化的线性曲线.
4 三 阶/次
cubic /
Third-order
字体: PostScript, Metafont, SVG… 设置3个随时间移动的中间点,
模拟出随时间变化的2次曲线,
再在模拟的2次曲线上:
(…重复二阶的动态构造过程…)
5 四 阶/次
quartic /
fourth-order
Higher-order
高阶曲线
计算成本更高!
使用更加困难!
(只能全局修改)
牵一发而动全身
设置4个随时间移动的中间点,
模拟出随时间变化的3次曲线,
再在模拟的3次曲线上:
(…重复三阶的动态构造过程…)
6 五 阶/次
fifth-order
设置5个随时间移动的中间点,
模拟出随时间变化的4次曲线,
再在模拟的4次曲线上:
(…重复四阶的动态构造过程…)

(运动轨迹使用德卡斯特里奥算法计算)
每个控制点都会影响整条曲线,图上可看出,曲线轨迹会受到所有控制点的影响。
如上,使用递归降阶的方式动态计算描绘出曲线,阶数越高计算量越高,因此,最常用的是2阶和3阶。
更高阶的需求会使用多段低阶曲线组合成复合曲线,比如B样条。

2. B-spline

B样条的概念可以追溯到19世纪,当时尼古拉·罗巴切夫斯基在俄罗斯喀山大学探索了类似的想法 ,尽管“B样条”一词是由艾萨克·雅各布·勋伯格于1967年创造的,反映了它们作为基函数的作用。

B样条曲线广泛应用于计算机辅助设计(CAD)和计算机图形学等领域,使用等距节点 equidistant knots,通过一组控制点来塑造曲线和曲面;此外,它还可用于数据分析,例如曲线拟合和实验数据的数值微分。
从汽车车身设计到噪声测量数据的平滑处理,B样条曲线提供了一种灵活且精确地表示复杂形状和函数的方法。

De Boor算法是一个数值上稳定的计算B样条的方法。
术语 B-spline B样条是Isaac Jacob Schoenberg创造的,B 是基础(basis)样条的缩写。

B样条曲线由多个贝塞尔弧组成,并提供了一种统一的机制来定义连接处的连续性。
B样条曲线利用外部条件将多个曲线段连接起来,同时保留控制点的原始概念。
相邻曲线共享一些控制点。外部条件可以是隐式的(均匀曲线),也可以由节点向量显式给出。
节点向量定义了相邻曲线(线段)之间应该共享多少信息。
使用多段低阶Bézier组合的方式,既解决了贝塞尔曲线只能全局修改的缺陷,也解决了高阶贝塞尔需求更多资源计算的问题。

3. NURBS

Non-uniform rational basis spline 非均匀有理B样条 ( NURBS ) 是一种使用 basis splines (B-splines)(B样条)的数学模型,常用于计算机图形学中表示曲线和曲面。
它在处理解析形状(由常用数学公式定义)和建模形状方面都具有极高的灵活性和精确性。
它是一种曲线建模方法,与多边形建模或数字雕刻不同。
NURBS 曲线广泛应用于计算机辅助设计(CAD)、计算机辅助制造(CAM) 和计算机辅助工程(CAE )领域。
它们是众多行业标准(例如IGES、STEP、ACIS和PHIGS)的组成部分。
各种3D 图形、渲染和动画软件 都提供了用于创建和编辑 NURBS 曲面的工具。

它们既能被计算机程序高效处理,又能方便人机交互。
NURBS曲面是两个参数的函数,映射到三维空间中的一个曲面。
曲面的形状由控制点决定。NURBS曲面可以紧凑地表示简单的几何形状。
T-样条和细分曲面 (T-splines, subdivision surfaces) 更适合于复杂的有机形状, 因为和 NURBS 曲面相比,它们可以将控制点的数量减少一半。

一般来说,编辑 NURBS 曲线和曲面是直观且可预测的。
控制点要么直接连接到曲线或曲面,要么就像用橡皮筋连接一样。
根据用户界面的类型,NURBS 曲线和曲面的编辑可以通过控制点(类似于贝塞尔曲线)进行,也可以通过样条建模和分层编辑等更高级的工具进行。

NURBS 曲线由其阶数、一组加权控制点和一个节点向量定义。
NURBS 曲线和曲面是 B样条和贝塞尔曲线和曲面的推广,主要区别在于控制点的加权,这使得 NURBS 曲线是有理数的。

NURBS曲线和曲面有很多用途:
  • 对于给定的阶数,NURBS 集合在仿射变换下是不变的: 可以通过对 NURBS 曲线和曲面的控制点应用旋转和平移等操作来对它们进行变换。
  • 它们为标准解析形状(例如圆锥曲线)和自由形状提供了一种通用的数学形式。
  • 它们提供了设计各种形状的灵活性。
  • 与更简单的方法相比,它们可以减少存储形状时的内存消耗。
  • 它们可以通过数值稳定且精确的算法进行相当快速的评估。
  • 这里,NURBS 主要在一维(曲线)中讨论;它可以推广到二维(曲面)甚至更高维度。
  • 是非有理B样条和非有理和有理贝兹曲线和曲面的推广。

2026-05-29

Bézier-VS-NURBS

1. Bézier 曲线发展时间线
2. 各种曲线包含关系图
3. 曲线要素表
4. 小结
5. 维基百科相关链接

 Bézier-VS-NURBS
关键字: Bézier, Rational Bézier, B-spline, NURBS

1. Bézier 曲线发展时间线

1912年,伯恩斯坦多项式建立,是贝塞尔曲线的数学基础。

1959年,保罗·德·卡斯特里奥(Paul de Casteljau)运用德卡斯特里奥算法,以稳定数值的方法求出贝塞尔曲线。
并率先将其应用于法国汽车制造商雪铁龙的计算机辅助设计。德·卡斯特里奥的方法在法国获得了专利,但直到20世纪80年代才发表。

~1962年,贝塞尔多项式则由法国工程师皮埃尔·贝塞尔(Pierre Bézier )在20世纪60年代广泛宣传,他独立发现了贝塞尔多项式,并将其用于雷诺汽车的车身设计。

~1967年,B-spline B样条曲线稍后提出 (~1967),使用多段低阶曲线复合,解决了贝塞尔曲线全局修改的问题,同时降低了运算量。

~1989年,NURBS曲线最后提出 (~1989之前),定义最复杂,能表达的曲线最灵活。 主要是解决B样条不能画椭圆、正圆和双曲线的问题。

2. 各种曲线包含关系图

. NURBS 非均匀有理B样条
Non-uniform rational basis spline
. B-spline B-样条
basis spline
.
Bézier Rational Bézier
贝塞尔 有理贝塞尔曲线
.

3. 曲线要素表

曲线
Curves
阶数
Degree
控制点
Control Point
权重
Weight
节点向量
knot vector
Bézier
贝塞尔
Y Y
Rational Bézier
有理贝塞尔
Y Y Y
B-spline
B-样条
Y Y Y 等距节点
equidistant knots
NURBS
非均匀有理B样条
Y Y Y 非均匀节点
Non-uniform knot

4. 小结

  • 从小到大的看: 
    • 由最初只能全局修改Bézier 曲线
    • 增加了权重后扩展到有理 Bézier 曲线,可以精确表示圆锥曲线的线段,包括圆弧。
    • 再由多段低阶 Bézier 曲线复合,并提供统一机制(均匀节点)来定义连接处的连续性,组成B-样条曲线支持局部修改,更加容易使用。由多段低阶Bézier组成,也避免过多的运算量
    • 在以上的基础,定义非均匀节点向量,形成非均匀有理B样条,NURBS。能表达的曲线最灵活,定义也最复杂。
  • 反过来看: 
    • NURBS,非均匀有理B样条,最为复杂,也能够表达更加精细的曲线。
    • B-spline,B-样条,是NURBS的特例,使用均匀节点向量。
    • 有理 Bézier 曲线,是B-样条的一部分,B-样条由多段曲线组成。
    • Bézier 曲线有理 Bézier 曲线 的特例,所有节点权重相同的有理 Bézier 曲线就是普通 Bézier 曲线。

5. 维基百科相关链接


LM78xx

导航 (返回顶部) 1. 78xx降压集成电路 1.1 命名 1.2 引脚 1.3 优势 1.4 缺点 1.5 小结 1.6 粗略的功耗计算 2. 应用 2.1 最简应用 2.2 更好的标准应用 2.3 利⽤降压电阻降低功耗 2.4 ⾼容性负载下的输⼊短...