惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
T
Troy Hunt's Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
T
Threatpost
G
Google Developers Blog
T
Threat Research - Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
The Exploit Database - CXSecurity.com
H
Heimdal Security Blog
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
T
The Blog of Author Tim Ferriss
Know Your Adversary
Know Your Adversary
Hacker News: Ask HN
Hacker News: Ask HN
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Schneier on Security
B
Blog
V2EX - 技术
V2EX - 技术
NISL@THU
NISL@THU
C
CERT Recently Published Vulnerability Notes
W
WeLiveSecurity
C
Cybersecurity and Infrastructure Security Agency CISA
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Y
Y Combinator Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Spread Privacy
Spread Privacy
The Last Watchdog
The Last Watchdog
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
Schneier on Security
Schneier on Security
F
Fortinet All Blogs
N
News | PayPal Newsroom
Attack and Defense Labs
Attack and Defense Labs
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
S
Security @ Cisco Blogs
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
P
Privacy & Cybersecurity Law Blog
P
Proofpoint News Feed
Project Zero
Project Zero
I
Intezer
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
SecWiki News
SecWiki News
Martin Fowler
Martin Fowler

博客园 - osoft

Sound Disable-Download-Chrome-AI-Mode Audio-Channel DAR-PAR-SAR ffmpeg-layouts Blender-Tank-Tracks Blender-Curve Bézier-VS-NURBS Walking-leg-mechanism-in-Blender Blender-Armatures Blender-Rigid-Body Simulate-pendulum-motion-using-Blender Platonic-solids Differential-Gear otvinta-Bevel-Gear-Calculator Bevel-gears Epicyclic-gearing Blender-Gears Blender5-WindowUI Video-file-size Windows-Execution-Policies Windows-PowerShell-prompt Windows-UAC Windows-Commands-prompt Windows-GameBar-ErrorLog Microsoft-Store-error Chrome-Gemini-Nano Windows-sfc Windows-Delivery-Optimization Windows-icacls Dism-Cleanup-image DISM-Get-cmds Windows11-GPT Generate-MAC-Address
Bézier-curve
osoft · 2026-05-30 · via 博客园 - osoft
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 曲线示意图

(运动轨迹使用德卡斯特里奥算法计算)

每个控制点都会影响整条曲线,图上可看出,曲线轨迹会受到所有控制点的影响。

如上,使用递归降阶的方式动态计算描绘出曲线,阶数越高计算量越高,因此,最常用的是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样条和非有理和有理贝兹曲线和曲面的推广。