相关知识:
确定一条n次贝塞尔曲线需要n+1个控制点和n+1个对应的调和函数,每个调和函数的定义域和值域都为[0,1],且所有调和函数值之和恒等于1,与自变量取值无关。以三次贝塞尔曲线为例,需要4个控制点(记为P1、P2、P3、P4),相应的4个调和函数的表达式分别为:
B03 = (1-t)^3
B13 = 3 * (1-t)^2 * t
B23 = 3 * (1-t) * t^2
B33 = t^3
贝塞尔曲线的所有性质都与调和函数有关,例如端点性质(曲线起点与第一个控制点重合,曲线终点与最后一个控制点重合,其他控制点均不在曲线上,但是会影响曲线的形状),曲线起点处的切线(一阶导数)为3(P2-P1)、曲线终点处的切线(一阶导数)为3(P4-P3),凸包性(曲线上所有点都在控制多边形的凸包之内),仿射不变性(对所有控制点进行变换后根据新的控制点重新计算曲线上的点,等价于对原曲线进行同样的变换)等等。
相关阅读:
任务描述:
编写Python程序,调用Matplotlib,可视化三次贝塞尔曲面的4个调和函数曲线,移动鼠标时显示一条跟随的竖线以及4个调和函数的函数值,可以验证,这4个调和函数的函数值之和恒等于1,与自变量取值无关(也可以通过二项式定理进行证明)。
参考代码: