计算机图形学:C++贝塞尔曲线(Bezier)的实现
前言
初次学习这个Bezier曲线的时候,觉得课本的一些介绍乱七八糟,本着便于大家理解的原则,我就从便于大家理解的角度——递推算法角度介绍Bezier曲线。如果想通过这篇文章理解Bernstein基函数的,可以绕路了。
结尾附实现源码(vs2019 C++ EaxyX环境)
关于Bezier曲线的理解
首先需要简单了解一下Bezier曲线为什么要被发明出来——因为需要计算机绘制曲线,而没有系统有效的方法绘制出来,所以就有人研究出来了这个东西。(本人是这么理解的。。。)
那么,怎么有效画出来?其实就是下面两张ppt的事。
这个过程其实是动态的,
P 0 P 0 1 P 0 P 1 = t \tfrac{P_0P_0^1}{P_0P_1}=t P0P1P0P01=t
P 1 P 1 1 P 1 P 2 = t \tfrac{P_1P_1^1}{P_1P_2}=t P1