【存档笔记】三阶贝塞尔 vs 赫米特曲线:原理、公式与工程统一理解

三阶贝塞尔 vs 赫米特曲线:原理、公式与工程统一理解

上一篇:

在动画系统、路径插值、Unity 曲线编辑器中,我们经常会接触两种看似不同的曲线:

  • 三阶贝塞尔曲线(Cubic Bezier)
  • 赫米特曲线(Hermite Curve)

很多人会有疑问:

它们到底是不是一回事?

为什么 Unity 用"切线",而不是控制点?

本篇笔记将从几何直觉 → 数学公式 → 转换关系完整讲清楚。


一、三阶贝塞尔曲线(Cubic Bezier)

1.1 定义

三阶贝塞尔曲线由 四个控制点定义:

  • (P_0):起点
  • (P_1):起点控制点
  • (P_2):终点控制点
  • (P_3):终点

1.2 公式


1.3 几何意义

控制点作用

  • (P_1):控制起点的"出发方向"
  • (P_2):控制终点的"进入方向"

曲线通常不会经过 P1 和 P2


1.4 切线性质(关键)

重要结论:

控制点本质是在控制"切线(导数)"


二、赫米特曲线(Hermite Curve)

2.1 定义

赫米特曲线使用:

  • 两个点
  • 两个切线

定义:

  • (P_0):起点
  • (P_1):终点
  • (T_0):起点切线
  • (T_1):终点切线

2.2 公式(标准形式)


2.3 基函数


2.4 几何意义

赫米特曲线的控制方式:

用"方向 + 速度"控制曲线

  • (T_0):控制起点"走出去的方向和速度"
  • (T_1):控制终点"进入的方式"

三、两者的本质关系(核心)

3.1 结论先说

三阶贝塞尔曲线 = 赫米特曲线(完全等价)

只是表达方式不同:

表达方式 参数
Bezier 4 个点
Hermite 2 点 + 2 切线

3.2 从贝塞尔 → 赫米特

已知:

  • (P_0, P_1, P_2, P_3)

根据导数:


3.3 从赫米特 → 贝塞尔

已知:

  • (P_0, P_3, T_0, T_1)

反推控制点:


3.4 一个非常重要的理解

控制点 = 切线信息的几何表达

切线 = 控制点的导数表达


四、统一视角:三次多项式

无论是:

  • Bezier
  • Hermite

本质都是:

只是"基函数不同"


4.1 三种常见基

曲线 基函数
Bezier Bernstein
Hermite Hermite Basis
多项式 幂函数

三者可以互相转换


五、为什么 Unity 使用 Hermite?

Unity 的 AnimationCurve 使用:

Keyframe + inTangent / outTangent

本质就是:

Hermite 曲线


原因:

更符合动画逻辑

  • x = time
  • y = value

切线:

完全符合"动画变化率"


更易编辑

  • 拖拽斜率比拖控制点更直观
  • 自动平滑(Auto Tangent)

更适合连续曲线

Hermite 更容易保证:

  • C1 连续(切线连续)
  • 平滑过渡

六、工程应用对比

6.1 Bezier 常见场景

  • SVG / 矢量图
  • UI Path
  • 曲线绘制
  • 字体(PostScript)

6.2 Hermite 常见场景

  • Unity AnimationCurve
  • 游戏插值系统
  • 相机轨迹
  • 物理模拟

小结

  • 三阶贝塞尔和赫米特是完全等价的两种表达

  • 贝塞尔用"控制点",赫米特用"切线"

  • 本质都是三次多项式插值


相关推荐
疯狂打码的少年7 小时前
【数据库技术】关系模型基本概念(关系/属性/元组/键)
java·服务器·数据库·笔记
有梦想的骇客9 小时前
PyTorch学习笔记
pytorch·笔记·学习
Capricorn19889 小时前
个人知识库接入大模型频现“幻觉引用”?排查 RAG 溯源失效问题,解析知芽构建可信第三大脑的底层架构
大数据·论文阅读·人工智能·笔记·架构·论文笔记
陈年老古董10 小时前
深度学习入门笔记:从神经元到深度神经网络
人工智能·笔记·深度学习·神经网络·学习
疯狂打码的少年11 小时前
【数据库技术】关系完整性约束(实体/参照/用户定义)
运维·服务器·数据库·笔记
sunshine22 girl12 小时前
Angular7,9,学习笔记四 父子组件传值,组件之间传值
笔记·学习
蒸蒸yyyyzwd13 小时前
cpp选手秋招学习笔记 day18
笔记·学习
Hotchip_MEMS13 小时前
从“手工作坊”到“全自动贴装”:MEMS如何重塑雾化器制造流程
人工智能·笔记·物联网·电脑·制造
维克兜率天14 小时前
【维克】技术指标是什么:从均线到MACD的数学原理
人工智能·笔记·python·算法·量化
摇滚侠14 小时前
《SpringBoot 3:入门与应用实战》第 9 章 使用 WebMvc 开发应用 阅读笔记 2
java·spring boot·笔记