25 Feb 2011

python Bezier Curve Class

Bezier Curve:
Quadratic

Cubic

Quartic

为了学习Bezier曲线生成算法,分别用python和matlab写了遍计算过程.
Bezier曲线次数比控制点个数少1,所以对于高阶曲线没有一一对比,仅用2次曲线做了对比(2d和3d的情况)

用python的numpy和matplotlib这2个库.
验证只验证了2次曲线.分别用逐点计算(上面三个图)的方法和bezier类的方法作比较,
三维曲线需要用matplotlib的插件Axes3D.
效果图:(点击看大图)
前2个分别用逐点计算和推导,从第3个是用类直接生成,可以看出一模一样.
4,5是测试类的2个方法:单独加点和加点的list,最后一个是测试3D bezier曲线

matlab由于矩阵运算非常方便,没有构造类,直接用matrix计算,为了跟python比较.
略去了前2个,3-6跟python一样.
效果图:(点击看大图)

计算方法参考






参考网站
http://en.wikipedia.org/wiki/Bezier_Curve#Constructing_B.C3.A9zier_curves
http://www.ibiblio.org/e-notes/Splines/Bezier.htm

No comments :

Post a Comment