Python+Matplotlib可视化三次贝塞尔曲线的4个调和函数

2022-06-05 10:07:18 浏览数 (1)

相关知识:

确定一条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),凸包性(曲线上所有点都在控制多边形的凸包之内),仿射不变性(对所有控制点进行变换后根据新的控制点重新计算曲线上的点,等价于对原曲线进行同样的变换)等等。

相关阅读:

  1. Python OpenGL绘制和拼接三次贝塞尔曲线
  2. Python Matplotlib绘制三次贝塞尔曲线
  3. Python OpenGL绘制任意形状的三次贝塞尔曲线

任务描述:

编写Python程序,调用Matplotlib,可视化三次贝塞尔曲面的4个调和函数曲线,移动鼠标时显示一条跟随的竖线以及4个调和函数的函数值,可以验证,这4个调和函数的函数值之和恒等于1,与自变量取值无关(也可以通过二项式定理进行证明)。

运行效果:

http://mpvideo.qpic.cn/0bc3puaaeaaa7aabsmt34frfa7odaj6qaaqa.f10002.mp4?

参考代码:

0 人点赞