龙全贞+丁小星+刘伟
摘要:根据NURBS曲线\曲面的基本表达式以及中心投影逆变换方法,利用MATLAB软件给出通用的交互式绘制程序,便于实现与贝齐尔、B样条曲线\曲面的转换,满足工程设计与教学的需要。
关键词:非均匀有理B样条;CAGD;交互式;造型技术
中图分类号:O241.5 文献标识码:A 文章编号:1007-9416(2017)07-0233-04
1 引言
二十一世纪,随着新军事变革不断的深入,武器更新换代加速,这对装备的研发如战车、舰艇、战机等提出了更高的要求[1],而它们外形设计的基础是自由曲线曲面造型技术,标准的数学表示形式则是工程设计上常用的非均匀有理B样条曲线\曲面(NURBS)[2]。
关于自由曲线曲面绘制程序的开发以及利用软件进行可视化实现,已有不少文献做了研究[3-5]。文献[3]开发了B样条曲线绘制系统,便于实施可视化教学。文献[4]基于VC环境,利用典型区域集结的方式得到了三次样条曲线的绘制代码,可以实现局部显示与修改。文献[5]则根据B样条曲线的原理,给出了算法终止的条件。2013年,由施法中编著的CAGD教材修订版配套教学软件问世[6],使学者可利用其自学教材或进行研究,但因其只能绘制二维平面曲线,且输入的坐标值需为大于100的正整数,局限性较明显。
MATLAB软件又称矩阵实验室,是美国mathworks公司于1984年开发的集数值计算,图形图像分析[7],交互式程序设计等功能于一体的商业数学软件,已发展到了2014b版本。目前,利用其实现NURBS曲线\曲面的可视化,并与B-Spline,Bezier曲线\曲面进行互相转换,辅助船体设计是一个重要的研究课题。
本文根据NURBS曲线\曲面的表达式定义,基于中心投影逆变换方法[6],利用MATLAB软件给出相应的m文件,可根据工程设计与教学的需要实现自由曲线曲面的绘制及交互式修改。
输出:NURBS曲面如图3所示。
通过实例1,2与文献[6]配套软件对比,MATLAB软件具有如下优势:
(1)matlab编写的m文件适用性较广,可在NURBS与B样条曲线曲面间自由转换(如图1~3;图5所示),而文献[6]配套软件则需在不同界面间切换,处理复杂曲线曲面较费时(如图4、6所示)。
(2)生成不同维度(2维\3维)的NURBS和B样条曲线时,matlab输入数据不受正负符号与维度限制,而文献[6]配套软件输入数据前需预处理转化为大于100的正整数值,且曲线局限于二维情形,不利于工程实际需求(如图6所示)。
5 结语
本文利用数学软件MATLAB基于NURBS曲线\曲面的基本原理编写了通用的m文件,探索其在计算机辅助几何设计领域的应用。与文献[6]提供的配套教学软件相比,MATLAB一定程度克服了前者多界面处理的复杂性,仅能输入大于100正整数的局限性,弥补其无法绘制三维曲线的不足,可广泛应用于CAGD教学,科研以及海军、海警等船体辅助设计。但其缺点在于暂无法同时实现NURBS曲面的三视图显示,故这是我们今后主要的研究方向。
参考文献
[1]袁艺,张磊,苑薇,林生.三维动画技术在军事领域中的应用[J].国防科技,2009,30(1):25-28.
[2]杨耿国.基于多层结构物理模型的三维人脸动画研究[D].山東:山东大学,2005.
[3]黄胜忠.用Matlab GUI技术实现B样条曲线的可视化教学[J].电脑开发与应用,2010,23(9):4-6.
[4]穆宣社.基于三次样条曲线绘制与实现[J].电脑编程技巧与维护,2010,17(7):70-72.
[5]林杰.B样条曲线的绘制算法及其实现[J].福建电脑,2011,27(9):17-19.
[6]施法中.计算机辅助几何设计与非均匀有理B样条(修订版)[M].北京:高等教育出版社,2013:380-384.
[7]王凤娇.MATLAB语言在自动控制系统校正装置设计中的应用[D].吉林:吉林大学,2007.
[8]丁小星.一种B样条曲线局部修改算法[J].计算机工程与应用,2013,49(7):176-178.
[9]丁小星,龙全贞,刘伟.贝齐尔曲线性质的推导与可视化实现[J].高师理科学刊,2015,35(7):18-21.endprint