苏静
摘要:NURBS是几何建模领域一种最常用的建模方式。NURBS拥有很多良好的数学性质,该文在分析关于曲线曲面细分建模技术的基础上,采用了节点插入方法进行NURBS曲线曲面细分,设计了NURBS曲面细分建模小型系统,将细分技术应用于建模系统,实现了三维曲面细分建模。
关键词:NURBS;节点插入;NURBS建模系统;细分
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)15-0004-02
1 背景
NURBS是几何建模领域一种最常用的建模方式。NURBS拥有很多良好的数学性质。曲面细分技术的原理就是按照一套细分的规则对曲面进行多次细分,使模型的曲面细分到一定的程度,让模型看上去足够的光滑细致。B样条在处理二次曲线弧时,人们发现B样条并不能对除抛物线以外的二次曲线弧进行精准的表示,只能给出拟合的效果。而这种拟合的效果会造成更加复杂的问题。因此,人们提出了非均匀有理B样条方法,简称NURBS。NURBS继承了B样条的所有优点,在一定的条件下能进行转化为Bezier、B样条等其他的曲线曲面,这意味着NURBS对产品形状的描述有了统一的数学描述[1-2]。
NURBS节点插入技术就是在NURBS的节点矢量中插入一个节点,插入节点后重新对节点矢量进行排序,重新计算控制顶点和权因子的数值,然后再将其绘制出来,绘制出来的曲线曲面和原来的形狀不变,NURBS的控制多边形趋近于曲线曲面。利用NURBS节点插入技术,我们可以实现NURBS的细分技术。通过NURBS的细分技术,使设计人员实现复杂建模的需要。
2 NURBS曲线方程的有理分式表示
4 细分的相关知识及算法的实现
细分就是对一个初始的形状描述数据进行无限次递归的细化,使之达到产品设计人员的要求。但在实际的运用中,进行无限次数的细分是不现实。因此,人们通常是在细分网格的尺寸小于屏幕的分辨率时,对于初始网格只执行两个细分,并且在检测到两个细分之后,将补丁的近误差和平滑的数据用作初始调整的基础。细分次数越多,效果越好,但计算量越大,光顺效率越低。因此,这两个细分是效率和效率之间的权衡[3]。
1)NURBS曲线插入一个节点
NURBS曲面新顶点位置和NURBS曲线的算法相同,分u向和v向分别计算即可。NURBS曲面中在同一位置重复插入同一节点的算法和NURBS曲线的也是一样。
5 细分建模应用
本文选择应用程序开发工具实践了一个简单的NURBS建模系统。主要完成导入图片,针对图中物体开始描边、获取对应数据,对数据进行细分建模构成三维模型。本次使用了Qt平台框架进行程序的设计。Qt是一个界面的应用程序框架,主要用于界面的设计,具有便捷性可以直接拖动控件进行界面布局,同时也可以使用代码进行界面布局。MFC平台框架涵盖的东西较多,较为冗余,MFC是微软框架,底层的代码实现更加地适应着Windows系统,不具有跨平台性。而Qt并不依附于某一个系统,具有跨平台性,而且Qt运行效率比MFC好,Qt还实现了C++中不具有的仿射机制,其功能的实现主要是采用了元编译器结合宏,加之Qt的信号的槽的机制,使其真正实现了组件式编程。
5.1 主界面
5.2 细分的效果
6 结束语
本文通过对NURBS建模技术的研究,实现了使用NURBS技术进行三维建模,同时通过代码建立了一个小型的NURBS建模系统。在完成NURBS曲面细分技术的研究之后,将其研究成果加入NURBS建模系统中,实现了NURBS节点插入细分算法,实现了NURBS曲面细分建模技术[5]。NURBS曲面采用的节点插入来进行曲面细分,由于新的控制点总是整行、整列地加入曲面上,因此细分后的NURBS曲面不够精细。为了解决NURBS曲面细分后不够精细的问题,提出了T样条采用一种新的点样条曲面(Point-based Splines)定义方式,曲面的结构变得更加灵活,使样条曲面真正的具有了局部细分的特性。该算法用于NURBS曲面模型的精简处理。
参考文献:
[1] 施法中.计算机辅助几何设计与非均匀有理B样条[M].2版.北京:高等教育出版社,2013.
[2] 于行洲,查红彬,石青云.蝶形细分面片的光顺[J].中国图象图形学报A辑,2003,8(3):299-305.
[3] 彭小新,唐月红.自适应T样条曲面重建[J].中国图象图形学报,2010,15(12):1818-1825.
[4] 薛翔.T样条曲面造型技术的研究[D].南京:南京航空航天大学,2014.
[5] 孔令德,康凤娥.NURBS曲面细分建模技术的研究与实现[J].洛阳师范学院学报,2020,39(5):26-31.
【通联编辑:谢媛媛】