在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → B样条曲线生成原理及实现

B样条曲线生成原理及实现

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.28M
  • 下载次数:12
  • 浏览次数:161
  • 发布时间:2021-01-17
  • 实例类别:一般编程问题
  • 发 布 人:好学IT男
  • 文件格式:.pdf
  • 所需积分:2
 

实例介绍

【实例简介】
从B样条曲线的概念和定义出发,按节点矢量中节点的 分布情况把B样条曲线划分成均匀B样条曲线、准均匀B样条曲线、分段贝齐尔曲线、一般非均匀B样条曲线4种 类型,分别对它们的特点和实现方法进行了详细阐述,最后给出了一个完整的各种B样条曲线生成代码和运行结 果
120 石河子大学学报(自然科学版) 第27卷 for(intj=0;j<k:j++)tli+j=i if(i<=L+k)tlil=i-k r(=n+1;i<=n+k+1;i++)ti]=n+1; else tli]=L+1; 24一般非均匀B样条曲线 2.5B样条曲线的实现及其意义 任意分布的节点矢量T=[10,t1…,ln+k+1],只 本文利用VC++6.0开发环境下,利用MFC的 要在数学上成立(其中节点序列非递减,二端节点重绘图功能,按照前面所论述的各种B样条曲线在相 复度≤k+1,内节点重复度≤k)都可选取。这样的同控制顶点的前提下进行绘制,绘制效果如图1所 节点矢量定义了一般非均匀B样条基,前二种类型示。图1中的a、b、c、d分别是均匀B样条曲线准 都可作为这种类型特例。 均匀B样条曲线、分段贝齐尔曲线、一般非均匀B 在VC编程中用以下语句对节点矢量赋值: 样条曲线在相同控制顶点的情况下的对照图,从图 L=n-k 1可见,不同类型的节点矢量分布情形下将得到不 for(i=0;i<=n+k+1;i++) 同的曲线轨迹。 if(i<=k)t订=0;else 贝齐尔曲线 B样条曲线 图1各种B样条曲线对照 图2贝齐尔曲线和B样条曲线对比 以上所有的插图都按照B样条曲线原理用ⅴC double n1, n2 程序进行编制实现。其主要功能体现在节点矢量赋 if(tli+jl==tli]n1=0; else nl=(u-t[i])/ 值、基函数生成图形绘制。程序首先通过鼠标交互(ti+j-ti1)米N[ilj-11 的方式标记出7个控制顶点,同时按照点击鼠标的 i(i+j+1]==i+1])n2=0;eem2=(u[i 顺序用虚线画出相应的控制多边形,然后通过菜单+j+1]-u)*N[i+1][-1](t[i+j+1]-t[i+ 选取的方式选取不同的B样条曲线,程序就会自动1]); 按不同的选择给数组赋不同的值,最后按同一个 N[i][j=n1+n2; 控制多边形分别画出4种类型的B样条曲线。程序 核心源代码如下 //图形生成的核心源代码如下(本程序还实现了对 void cdraw Curveview: Bspline(intk,intn, double控制多边形修改同时曲线自动修改): NLMAX double u) bb=kicc=tln+k+1; i int L=n-k, i,j; double t[ MAX for(u=bb; u< =ee; u+=0.01) for(i=0;<=n+k+1;i++) /con为控制多边形点矩阵 for(i=0;j<=n+k+1;++) X=y=0 N[i][j=0;//基函数初始化 Bspline(k, ROW-1, N,u) /基函数生成,其中数组t存储的是节点矢量 for(i=O; i< ROW 值,由上述方法根据不同类型选取相应的赋值方法。 Ix+=con[i]. x* NilL] bb=tlk]; ee=t[n+k+11 y+= conl i」.y*N[i」[k] for(i=0; i<=n; i++) if(tii]<=u&&u<tli+INi0=l; else x=int(x+5); y= int(+ 5); for(j=1;j<=k;++) if(abs( int(x-con[ RoW-1.x)==0&&abs for(i=0; i<=n;i++) (inL(y-con[ ROW-1]y))==o) 第1期 王增波,等:B样条曲线生成原理及实现 21 i(! Drag()k)pmum=tims;imes=0;rum;}线用分段 Bezier曲线表示后,各曲线段就具有了相 es 对的独立性,移动曲线段内的一个控制顶点只影响 fabs(int(x-conl0].x)==0&&abs(int(y该曲线段的形状,对其它曲线段的形状没有影响,并 con[o]y))==0)o=true; 且 Bezier曲线一整套简单有效的算法都可以原封不 if(btype! =31 1 bType==3&&o) 动地采用。 ir(beyin)idc-> MoveTo(int(x), int(y)):begin 参考文献: 0;} [1] Bezier PE. Example of an existing system in motor industry the UNISURF system[J]. Proc Roy Soc of London, 1971 if(x*y! =o)dc-> Lineto(int(x), int(y)); A32l:207-218. [2]Coons S A. Surfaces for computer aided design of space frms 3小结 [R]. Cambridge Mass: MIT" Project MAC-TR-255, 196 [3] Coons S A Surfaces for computer aided design of space forms 由上述B样条曲线的定义、性质和实现可见: MIT Projecl 1)B样条曲线采用的基函数保持了用控制顶点[4]杜双兴学文,李琪华 B-SPline高阶元方法在三维水 定义曲线,从而继承了贝齐尔方法所具有的优良的 弹性力学中的应用[J]船舶力学,20,4(1):1723 控制性质,同时,又克服了贝齐尔方法不具有局部性5孙玉文陈伟卿B样条技术在RM切数据处理中的 应用[J航空精密制造技术,2002,38(4):30-32 质的缺点,并在参数连续性上轻而易举地解决了贝 齐尔方法在描述复杂形状遇到的连接问题。图2显6]葛玉琛程昌年实验数据的B样条压缩法[J天津职 示了在相同控制顶点下绘制出的贝齐尔曲线和B(]任重杨灿军陈鹰轨迹规划中的B样条插值算法 样条曲线,可以看出B样条曲线在左起第4个控制 [J.机电工程,2001,18(5):38-39 点上所展现在连接方面的优势。 [8 Schoenberg I J. Contributions to the Problem of Approximation 2)B样条曲线划分的4种类型中,均匀、准均匀 of Equidistant Data by Analytic Functions J. Quart Appl 与分段贝齐尔3种类型都可以看成一般非均匀的特 Maths,1946,(4):45-99,112-141 例。均匀B样条曲线在曲线定义域内各节点区间 9] Curry H B, Schoenberg I J On Spline Distributions and Their 上具有用局部参数表示的统一的表达式,使得计算 Iimits: The Polya Distribution Functions[J].American Mathe 与处理简单方便,但用它定义的均匀B样条曲线没 matical Soc. 1947, 53 1114 有保留 Bezier曲线端点的几何性质,即样条曲线的 I 10] De Boor C On Calculating with B-Spline[J]. J Approx Theo ry,1972,(6):5062 首末端点不再是控制多边形的首未端点,如图1a所 11] De Boor c. A Practical Guide of Splines [M]. Newyork 示。采用准均匀的B样条曲线就是为了解决这个 Springer, 1978 问题,使曲线在端点的行为有较好的控制,如图1b[121cxMG. The numerical Evaluation of B-SplinesLJ] J INST 所示。分段 Bezier线实例如图lc所示,B样条曲 Maths Application, 1972, 10: 134-149 The Creating Principle and Realization of B-spline Curve WANG Zeng-bo, PENG Ren-zhong, GONG Zhao-gang (Hengyang Normal University, Hengyang, Hunan 421008, China) Abstract: To further promote the application in various fields, this paper described the basic concept and definition of B- spline Curve and they were divided into four types under nodes distribution of node vector. The four types are a uniform B- spline curve, a quasi-uniform B-spline curve, a sulb-BEzier curve, and a general non-uniform B-spline curve. Four methods have been introduced in detail and analyzed comparatively. Thcir source codes, running results and a detailed comparative analysis were given This paper has certain application value to implement the geometric modeling and others Key words: B-splinc; control points; basis function 【实例截图】
【核心代码】

标签:

实例下载地址

B样条曲线生成原理及实现

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警