news 2026/5/11 0:39:12

三次贝塞尔(Bezier)曲线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
三次贝塞尔(Bezier)曲线

基本定义

三次贝塞尔曲线是由4个控制点定义的参数曲线,是计算机图形学中最常用的贝塞尔曲线形式。

数学公式

给定控制点 ( P_0, P_1, P_2, P_3 ),三次贝塞尔曲线的参数方程为:

其中:

  • ( t ) 是参数,从0到1变化
  • 各项系数是伯恩斯坦基函数:

重要特性

  1. 端点性质

    • ( B(0) = P_0 ),曲线起点在第一个控制点
    • ( B(1) = P_3 ),曲线终点在最后一个控制点
  2. 端点切线

    • 起点切线方向:( P_1 - P_0 )
    • 终点切线方向:( P_3 - P_2 )
  3. 凸包性:曲线完全位于控制点的凸包内

  4. 仿射不变性:对控制点进行仿射变换等价于对曲线进行同样变换

矩阵表示

三次贝塞尔曲线可以用矩阵形式表示:

求导公式

一阶导数(切线方向):

二阶导数:

应用示例(代码)

importnumpyasnpimportmatplotlib.pyplotaspltdefcubic_bezier(t,P0,P1,P2,P3):"""计算三次贝塞尔曲线上的点"""return(1-t)**3*P0+3*(1-t)**2*t*P1+3*(1-t)*t**2*P2+t**3*P3# 控制点P0=np.array([0,0])P1=np.array([1,3])P2=np.array([4,2])P3=np.array([5,0])# 生成曲线点t_values=np.linspace(0,1,100)curve_points=np.array([cubic_bezier(t,P0,P1,P2,P3)fortint_values])# 绘图plt.figure(figsize=(8,6))plt.plot(curve_points[:,0],curve_points[:,1],'b-',label='贝塞尔曲线')plt.plot([P0[0],P1[0],P2[0],P3[0]],[P0[1],P1[1],P2[1],P3[1]],'ro--',label='控制点')plt.legend()plt.grid(True)plt.axis('equal')plt.show()

应用场景

  1. 字体设计:TrueType字体使用二次贝塞尔曲线,而PostScript字体使用三次贝塞尔曲线
  2. 计算机图形学:路径绘制、动画轨迹
  3. 工业设计:汽车、飞机等曲面设计
  4. UI设计:平滑的过渡动画

与二次贝塞尔曲线的比较

特性二次贝塞尔曲线三次贝塞尔曲线
控制点数3个4个
多项式次数2次3次
灵活性较低,只能形成抛物线更高,可以形成S形曲线
应用简单曲线复杂曲线设计

三次贝塞尔曲线因其灵活性和平滑性,成为矢量图形和曲线设计中最重要的工具之一。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 22:25:43

Blender插件Poly Haven Assets全方位应用指南

Blender插件Poly Haven Assets全方位应用指南 【免费下载链接】polyhavenassets A Blender add-on to integrate our assets natively in the asset browser 项目地址: https://gitcode.com/gh_mirrors/po/polyhavenassets Poly Haven Assets作为Blender的专业级资源集成…

作者头像 李华
网站建设 2026/5/9 1:48:32

5步定制指南:从零打造高效机械键盘配置方案

5步定制指南:从零打造高效机械键盘配置方案 【免费下载链接】app 项目地址: https://gitcode.com/gh_mirrors/app8/app 你是否曾为键盘布局不符合使用习惯而烦恼?是否希望通过定制化配置提升工作效率却苦于技术门槛?传统键盘配置往往…

作者头像 李华
网站建设 2026/5/10 9:33:47

5个让你代码脱胎换骨的整洁之道

5个让你代码脱胎换骨的整洁之道 【免费下载链接】Clean-Code-zh 《代码整洁之道》中文翻译 项目地址: https://gitcode.com/gh_mirrors/cl/Clean-Code-zh 你是否曾打开一个项目,面对满屏混乱的代码感到无从下手?是否花了数小时调试,最…

作者头像 李华
网站建设 2026/5/9 14:31:16

Smithbox游戏定制工具使用指南

Smithbox游戏定制工具使用指南 【免费下载链接】Smithbox Smithbox is a modding tool for Elden Ring, Armored Core VI, Sekiro, Dark Souls 3, Dark Souls 2, Dark Souls, Bloodborne and Demons Souls. 项目地址: https://gitcode.com/gh_mirrors/sm/Smithbox Smith…

作者头像 李华
网站建设 2026/4/17 14:25:44

MAA智能工具自动化战斗与基建管理使用指南

MAA智能工具自动化战斗与基建管理使用指南 【免费下载链接】MaaAssistantArknights 一款明日方舟游戏小助手 项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights 1. 技术优势解析:重新定义游戏辅助工具的核心价值 MAA智能工具作为基于…

作者头像 李华