基于MATLAB动态实现Bezier曲线几何作图
2015-12-24李朝红
李朝红 兰 虹
(齐齐哈尔高等师范专科学校 理工系,黑龙江 齐齐哈尔 161005)
基于MATLAB动态实现Bezier曲线几何作图
李朝红兰虹
(齐齐哈尔高等师范专科学校 理工系,黑龙江 齐齐哈尔 161005)
摘要:基于De Casteljau算法的Bezier曲线生成递归公式,利用MATLAB语言,动态绘制n次Bezier曲线生成,并给出了完整的MATLAB程序。通过动态生成曲线可以加深学生对抽象理论的理解。
关键词:Bezier曲线;De Casteljau算法;动态绘图

1De Casteljau算法与Bezier曲线

(1)

(2)
公式(2)可以用图1形象说明分割过程。当n=3,即三次Bezier曲线p(u)的分割过程如图1所示,其顶点变化如图2。


2MATALAB动态画图功能
MATLAB除了强大的矩阵运算、仿真分析外,绘图功能也是相当地强大。在MATLAB中有很多种绘制动态图形的方法,如AXIS 移动坐标系(适合于数据已经全部生成的场合,先画图,然后移动坐标轴);Hold On模式(先画上一帧,接着保留原始图像,追加下一帧图像,此种方式比较繁琐);Plot背景擦除模式(适合画动画,效率比较高,刷新闪烁小)等。
现利用绘图函数plot背景擦除模式来绘制De Casteljau算法动态生成Bezier曲线,在plot命令中加入“EraseMode”参数,“EraseMode”包含以下几种擦除方式:
(1)normal方式:使用该选项后,重画整个显示区,该模式产生的图像最准确,但较慢。
(2)background方式:将旧对象的颜色变成背景色,从而达到擦除的目的。这种模式将损坏被擦除对象下面的对象。
(3)xor方式:对象的绘制和擦除由该对象颜色与屏幕颜色的同异而定。只画与屏幕颜色不一致的新对象点,只擦除与屏幕颜色不一致的原对象点。该方式不损害被擦除对象下面的其他图像。
(4)none方式:不做任何擦除。
3MATLAB实……
