- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
B样条曲面生成算法的研究与改进
本文由天空乐园大学生兼职网整理分享
摘要
本文首先介绍了B样条曲面生成的已有算法:基于B样条曲线生成的德布尔算法的B样条曲面的生成算法、基于样条曲面反算方法的B样条曲面生成算法。接着介绍了两种双三次B样条曲面生成的改进算法:1.基于deBoor和CoxB递推公式构造B样条曲面基的曲面生成算法,2.提高双三次B样条曲面的生成效率的改进算法。第2种算法能显著提高效率,提出B样条曲面正等测投影的建立方法,讨论用高性能的动态数组和Excel软件存储任意数量控制点的实现方法等关键技术。采用Visual C++6.0为编程工具开发软件系统,实现了任意数量控制点的双三次B样条曲面生成。通过将改进的算法和已有的算法进行比较我们得出改进算法的优点。
关键词:B样条曲面 生成算法 deBoor、CoxB递推公式
1引言
B样条曲线曲面是实体造型,虚拟现实等CAD/CAM领域中广泛使用的几何造型工具。B样条曲面具有与B样条曲线相同的局部支柱性、凸包性、连续性和几何不变性等性质。与Bezier曲面相比,B样条曲面极为自然地解决了曲面片之间的连接问题。它不仅继承了Bézier曲线曲面的所有优点,而且具有局部修改的性质,因此得到工业界的广泛认可。B样条曲面的生成算法一直都是学者们的研究热点。在施法中提出的B样条曲线生成的德布尔算法[1]的基础上,谭浩强将此算法推广到B样条曲面的生成[2];吕 科,耿国华,周明全等人提出了基于样条曲面反算方法的B样条曲面生成算法[3];而近几年又有很多人提出了许多改进的算法,其中本文主要介绍了基于deBoor和CoxB递推公式构造B样条曲面基的曲面生成算法[4] 和提高双三次B样条曲面的生成效率的改进算法[9]。
2.已有算法介绍
2.1基于样条曲面反算方法的B样条曲面生成算法
定义n,m分别为u向、v向上待插值数据点个数,k=3,l=3,分别为生成曲面在u向、v向上的次数。
述的 B样条曲面为 P ( u, w ) = 。按网格 V中的行构造 w向的曲线, 则可得到四条 B样条曲线:
其中: B j , 3 (w )为与顶点 Vi j对应的 B样条基函数; Vi j
为控制顶点。
当参数 w在 [ 0 , 1]内取值 w1 时, 则可分别在曲线 Q1 (w )、Q2 (w )、 Q3 (w )、 Q4 (w )上得到四个点 q1、 q2、q3 和 q4。若以该
四点作为新的特征多边形顶点再构造 u向的 B样条曲线:
则 P ( u , w l)为曲面片上的一条曲线。当 u和 w 在 [ 0 , 1]之间遍历时, 就可以得到一张双三次 B样条曲面片, 如图 1所示。可通过正算, 用追赶法解方程组获得控制网格, 然后反算获得曲面, 再进行插值。如图 2为给定点云数据通过反求后, 滤掉不合格的点, 再生成的控制网格和曲面。
2.2基于B样条曲线生成的德布尔算法的B样条曲面的生成
2.2.1 B样条曲线控制顶点及控制多边形的生成[5]
(1) B样条曲线采用顶点定义,控制顶点的生成有下面几个过程来完成:程序先对控制顶点的坐标赋值:Contr-x=0; Contr-y=0;然后将鼠标所在点的坐标赋给控制顶点:;
调入画直线函数,以坐标点(x,y)为中心,画小十字线:line(x-2,y,x+2,y);line(x,y-2,x,y+2).
此时,一个点的输入结束,重复这个过程便会在屏幕上得到一系列的控制定点。点的输入结束后,调入直线命令,依次连接控制定点,即在屏幕上生成控制多边形。
(2) 求B样条曲线上的点
控制多边形确定以后,B样条曲线的形状取决于B样条曲线的次数,求B样条曲线上的点可采用德布尔算法的递推公式。
这里P(u)为所求曲线上的点。对于求出的B样条曲线上的一系列点,依次用小直线段连接。由于程序中选取的步长非常小,所以在屏幕上显示出所定义的一条眼观光滑的B样条曲线。
2.1.2 B样条曲面控制网格的生成[1]
生成过程如下:程序中用文件输入曲面的控制顶点;选取两个参数方向的次数分别用k与l表示,其取值范围:;选取两个参数方向的合适步长,将德布尔算法推广到曲面,计算并显示曲面上每个参数方向的对应于定义域内的眼观光滑的等参数线。其生成B样条曲面的算法如下:
设给定曲面定义域一对参数值(u,v),欲求该B样条曲面上对应的点P(u,v)可以先沿任一参数方向譬如先沿v参数方向,按如下步骤进行:首先以参数值对沿v参数方向的m+1个控制多边形执行用于计算B样条曲线上点的德布尔算法,求得m+1个点作为中间顶点,构成中间多边形。然后,以u参数值对这中间多边形执行B样条曲线的德布尔算法,所得一点即所求B样条曲面上一点P(u,v)。给出一系列u,v值,就得到曲面上的一系列点。
光滑连接生成曲面
文档评论(0)