定义:一般的,在平面直角坐标系中,如果曲线上任意一点的坐标x,y都是某个变数't’的函数{x=f(t),y=g(t)并且对于't‘的每一个允许值,由上述方程组所确定的点M(x,y)都在这条曲线上,那么上述方程则为这条曲线的参数方程,联系x,y的变数't‘叫做变参数,简称参数,相对于参数方程而言,直接给出点的坐标间关系的方程叫做普通方程。(注意:参数是联系变数x,y的桥梁,可以是一个有物理意义和几何意义的变数,也可以是没有实际意义的变数。例如:的参数方程 x=a+r cosθ y=b+r sinθ(θ∈ [0,2π) ) (a,b) 为圆心坐标,r 为圆半径,θ 为参数,(x,y) 为经过点的坐标。椭圆的参数方程 x=a cosθ  y=b sinθ(θ∈[0,2π)) a为长半轴长 b为短半轴长 θ为参数。

通用的贝塞尔曲线:一条贝塞尔曲线是由一组定义的控制点 P0到 Pn,在 n 调用它的顺序 (n = 1 为线性,2 为二次,等.)。第一个和最后一个控制点总是具有终结点的曲线;然而,中间两个控制点 (如果有的话) 一般不会位于曲线上 。贝塞尔曲线返回点的贝塞尔函数,使用线性插值的概念作为基础。

1.线性贝塞尔贝:塞尔曲线包含两个控制点即 n = 2 称为线性的贝塞尔曲线  。给定点P0、P1,线性贝兹曲线只是一条两点之间的直线。这条线由下式给出:

三维贝塞尔曲线python_线性插值

其等同于线性插值。2.二次贝塞尔公式:贝塞尔曲线包含三个控制点即 n = 3 称为二次贝塞尔曲线。二次方贝兹曲线的路径由给定点P0、P1、P2控制,这条线由下式给出:

三维贝塞尔曲线python_三维贝塞尔曲线python_02

3.三次贝塞尔方程:贝塞尔曲线包含四个控制点即 n = 4,所以称为三次贝塞尔曲线。P0、P1、P2、P3四个点在平面或在三维空间中定义了三次方贝兹曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1或P2;这两个点只是用来充当控制点。P0和P1之间的间距,决定了曲线在转而趋进P3之前,走向P2方向的“长度有多长”。曲线的参数形式为:

三维贝塞尔曲线python_线性插值_03

4.一般参数形式的贝塞尔方程:

 N阶贝兹曲线可如下推断。给定点P0、P1、…、Pn,其贝兹曲线即:

三维贝塞尔曲线python_贝塞尔_04

如上公式可如下递归表达: 用表示由点P0、P1、…、Pn所决定的贝兹曲线。

注意:通过两个低阶的贝塞尔曲线插值的堆叠总能够获得更高阶的贝塞尔曲线,通俗的来说通过对两条低阶的贝塞尔曲线插值,你可以求得一条高一阶的贝塞尔曲线。

比如:二次贝塞尔曲线是点对点的两个线性贝塞尔曲线的线性插值,三次贝塞尔曲线是两条二次贝塞尔曲线的线性插值。


 源码