贝塞尔曲线

时间:2020-05-07 00:27:24

三次方贝塞尔曲线

数学的数值分析领域中,贝塞尔曲线英语:Bézier curve,亦作“贝塞尔”)是计算机图形学中相当重要的参数曲线。更高维度的广泛化贝塞尔曲线就称作贝兹曲面,其中贝兹三角是一种特殊的实例。

贝塞尔曲线于1962年,由法国工程师皮埃尔·贝兹(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由保尔·德·卡斯特里奥于1959年运用德卡斯特里奥算法开发,以稳定数值的方法求出贝塞尔曲线。

实例说明

线性贝塞尔曲线

给定点P0P1,线性贝塞尔曲线只是一条两点之间的直线。这条线由下式给出:

TrueType字型就运用了以贝兹样条组成的二次贝塞尔曲线。

三次方贝塞尔曲线

P0P1P2P3四个点在平面或在三维空间中定义了三次方贝塞尔曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1P2;这两个点只是在那里提供方向资讯。P0P1之间的间距,决定了曲线在转而趋进P2之前,走向P1方向的“长度有多长”。

曲线的参数形式为:

阶贝塞尔曲线可如下推断。给定点P0P1、…、Pn,其贝塞尔曲线即

表示由点P0P1、…、Pn所决定的贝塞尔曲线。则

阶的贝塞尔曲线,即双

即多项式

时,分成四段的贝塞尔曲线,可以小于千分之一的最大半径误差近似于圆)。
  • 位于固定偏移量的曲线(来自给定的贝塞尔曲线),又称作偏移曲线(假平行于原来的曲线,如两条铁轨之间的偏移)无法以贝塞尔曲线精确的形成(某些平凡实例除外)。无论如何,现存的启发法通常可为实际用途中给出近似值。
  • 建构贝塞尔曲线

    线性曲线

    线性贝塞尔曲线演示动画,t在[0,1]区间

    线性贝塞尔曲线函数中的t会经过由P0P1Bt)所描述的曲线。例如当t=0.25时,Bt)即一条由点P0P1路径的四分之一处。就像由0至1的连续tBt)描述一条由P0P1的直线。

    二次曲线

    为建构二次贝塞尔曲线,可以中介Q0Q1作为由0至1的t

    • P0P1的连续点Q0,描述一条线性贝塞尔曲线。
    • P1P2的连续点Q1,描述一条线性贝塞尔曲线。
    • Q0Q1的连续点Bt),描述一条二次贝塞尔曲线。
    二次贝塞尔曲线的结构二次贝塞尔曲线演示动画,t在[0,1]区间

    高阶曲线

    为建构高阶曲线,便需要相应更多的中介点。对于三次曲线,可由线性贝塞尔曲线描述的中介点Q0Q1Q2,和由二次曲线描述的点R0R1所建构:

    三次贝塞尔曲线的结构三次贝塞尔曲线演示动画,t在[0,1]区间

    对于四次曲线,可由线性贝塞尔曲线描述的中介点Q0Q1Q2Q3,由二次贝塞尔曲线描述的点R0R1R2,和由三次贝塞尔曲线描述的点S0S1所建构:

    四次贝塞尔曲线的结构四次贝塞尔曲线演示动画,t在[0,1]区间

    还可参阅五阶贝塞尔曲线的构成:

    五次贝塞尔曲线演示动画,t在[0,1]区间

    这些运动轨迹使用de Casteljau算法计算出贝塞尔曲线。

    升阶

    n次贝塞尔曲线可以转换为一个形状完全相同的n+1次贝塞尔曲线。这在软件只支援特定阶次的贝塞尔曲线时很有用。例如,Cairo只支援三次贝塞尔曲线,你就可以用升阶的方法在Cairo画出二次贝塞尔曲线。

    我们利用都乘上 (1 − t) 或 t,让每一项都往上升一阶。以下是将二阶升为三阶的范例

    式中可以任意挑选。

    因此,新的控制点为

    此处

    ,因此事先计算好
    有理贝塞尔曲线的示例

    有理贝兹增加可调节的权重,以提供更近似于随意的形状。分子是加权的伯恩斯坦形式贝塞尔曲线,而分母是加权的伯恩斯坦多项式的总和。

    给定n + 1控制点Pi,有理贝塞尔曲线可如下描述:

    参阅

    • de Casteljau算法
    • 样条
    • 贝兹样条
    • 贝兹曲面
    • 贝兹三角
    • NURBS
    • string art,Bézier curves are also formed by many common forms of string art, where strings are looped across a frame of nails.
    • 埃尔米特曲线

    与本文近似的文章: