程序课程设计报告B样条.docx

上传人:b****2 文档编号:1310800 上传时间:2023-04-30 格式:DOCX 页数:13 大小:229.43KB
下载 相关 举报
程序课程设计报告B样条.docx_第1页
第1页 / 共13页
程序课程设计报告B样条.docx_第2页
第2页 / 共13页
程序课程设计报告B样条.docx_第3页
第3页 / 共13页
程序课程设计报告B样条.docx_第4页
第4页 / 共13页
程序课程设计报告B样条.docx_第5页
第5页 / 共13页
程序课程设计报告B样条.docx_第6页
第6页 / 共13页
程序课程设计报告B样条.docx_第7页
第7页 / 共13页
程序课程设计报告B样条.docx_第8页
第8页 / 共13页
程序课程设计报告B样条.docx_第9页
第9页 / 共13页
程序课程设计报告B样条.docx_第10页
第10页 / 共13页
程序课程设计报告B样条.docx_第11页
第11页 / 共13页
程序课程设计报告B样条.docx_第12页
第12页 / 共13页
程序课程设计报告B样条.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

程序课程设计报告B样条.docx

《程序课程设计报告B样条.docx》由会员分享,可在线阅读,更多相关《程序课程设计报告B样条.docx(13页珍藏版)》请在冰点文库上搜索。

程序课程设计报告B样条.docx

程序课程设计报告B样条

程序课程设计报告

2012年7月10日

B样条方法与十二生肖图的设计专业:

信息与计算科学

班级:

信10-1

题目:

B样条方法与十二生肖图的设计

组长:

马金松

组员:

马浩辰薛俊杰

指导教师:

张彩霞

时间:

2012.07.10

 

摘要:

我们研究的课题是B样条方法与十二生肖图的设计,因为感觉这个课题比较贴近实际情况,而且此类问题使我们从未接触过的,希望能从这次时间学习中学到更多的matlab以及VC应用知识。

在数学的子学科数值分析里,B-样条是样条曲线一种特殊的表示形式。

它是B-样条基曲线的线性组合。

B-样条是贝兹曲线的一种一般化,可以进一步推广为非均匀有理B样条(NURBS),使得我们能给更多一般的几何体建造精确的模型。

术语B样条是IsaacJacobSchoenberg创造的,是基(basis)样条的缩略  B样条曲线曲面具有几何不变性、凸包性、保凸性、变差减小性、局部支撑性等许多优良性质,是目前CAD系统常用的几何表示方法,因而基于测量数据的参数化和B样条曲面重建是反求工程的研究热点和关键技术之一。

Abstract:

关键词:

B-样条基曲线贝兹曲线B样条分段混合函数

Keywords:

1.引言

因为我们的选题是《B样条方法与十二生肖图的设计》,它的实际意义在于利用所学过的数学工具,根据B样条函数的原理。

利用一系列曲线绘制出想要的图案。

B样条函数的性质

许多与贝塞尔基函数的相似。

1Ni,p(u)是一个在u上的p次多项式

2非负性--对所有的i,p和u,Ni,p(u)是非负的

3局部支撑(LocalSupport)--Ni,p(u)是在[ui,ui+p+1)上的非零多项式这个在前面已经讨论过。

4在任一区间[ui,ui+1),最多有p+1个p次的基函数非零,即:

Ni-p,p(u),Ni-p+1,p(u),Ni-p+2,p(u),...,和Ni,p(u)

5单位分解(PartitionofUnity)--所有非零的p次基函数在区间[ui,ui+1)上的和(sum)是1:

上一条性质表明Ni-p,p(u),Ni-p+1,p(u),Ni-p+2,p(u),...,和Ni,p(u)在[ui,ui+1)上非零这条性质说明这些p+1个基函数的累加和1.

6如果节点数是m+1,基函数的次数是p,而p次基函数的数目是n+1,,那么m=n+p+1:

这不难理解。

设Nn,p(u)是最后一个p次基函数。

它在[un,un+p+1)上非零因为它是最后一个基函数,un+p+1肯定是最后一个节点um。

因此,我们有un+p+1=um及n+p+1=m.总之,给定m和p,设n=m-p-1则p次基函数是N0,p(u),N1,p(u),N2,p(u),...,和Nn,p(u).

7基函数Ni,p(u)是p次多项式的复合曲线,连接点在[ui,ui+p+1)上的节点处。

上一页的例子很好地说明了这个性质。

例如N0,2(u),其在[0,3)上非零,是由定义在[0,1),[1,2)和[2,3)上的三个抛物线构建而成。

它们在节点2和3处连接在一起。

.

8在一个有重复度k的节点处,基函数Ni,p(u)是Cp-k连续的。

因此,增加重复度减小连续性的层次(level),增加次数增加连续性。

上述2次基函数N0,2(u)在节点2和3处是C1连续的,因为它们是简单节点。

比较三次B样条曲线与三次Bezier曲线的特性

B样条方法是在保留Bezier方法的优点,同时克服其由于整体表示带来不具有局部性质的缺点,及解决在描述复杂形状时带来的连接问题下提出来的。

常用的cad设计中之所以选用3次B样条而不用更高次是因为次数越高,控制点影响的曲线段数就越多,不利于局部控制;而三次Bezier曲线意味着必须有4个控制顶点。

他们的区别主要有以下4点:

1、Bezier曲线的基函数次数等于控制顶点数减1。

B样条曲线基函数次数与控制顶点数无关;2、Bezier曲线的基函数是Beinstein基函数,它是个多项式函数。

B样条曲线的基函数是多项式样条。

3、Bezier曲线是一种特殊表示形式的参数多项式曲线。

B样条曲线则是一种特殊表示形式的参数样条曲线。

4、Bezier曲线缺乏局部性质,即修改任意一个控制顶点都会对曲线整体产生影响。

B样条曲线具有性质,即修改一个控制顶点只会对几段曲线产生影响。

基于B样条曲线是分段的Bézier曲线段的集合这一数学特性,通过剖析三次均匀B样条曲线的数学表达及其几何意义,由曲线的几何特性给出了各曲线段Bézier点的几何表示.每段B样条曲线段(三次Bézier曲线段)对应的4个Bézier特征顶点,可以导出该曲线段的B样条基函数.依此为基础,描述了三次均匀B样条曲线构造的原理和过程,并给出了不同曲线段数情况下曲线特征构造和插值构造的相关公式.

针对本次课题,我们先选出需要绘制的生肖图案,根据需要计算出所需函数,最后再利用matlab工具绘制。

 

2.课题中涉及的算法的基本思想或基本原理

B样条曲线的数学表达式为:

在上式中,0≤t≤1;i=0,1,2,…,m

所以可以看出:

B样条曲线是分段定义的。

如果给定m+n+1个顶点Pi(i=0,1,2,…,m+n),则可定义m+1段n次的参数曲线。

在以上表达式中:

Fk,n(t)为n次B样条基函数,也称B样条分段混合函数。

其表达式为:

式中:

0≤t≤1k=0,1,2,…,n。

连接全部曲线段所组成的整条曲线称为n次B样条曲线。

依次用线段连接点Pi+k(k=0,1,…,n)所组成的多边折线称为B样条曲线在第i段的B特征多边形。

在二次B样条曲线中,n=2,k=0,1,2

 故其基函数形式为:

有了基函数,因此可写出二次B样条曲线的分段表达式为:

(i=0,1,2,…,m) m+1段

写成一般的矩阵形式为:

式中,Bk为分段曲线的B特征多边形的顶点:

B0,B1,B2。

对于第i段曲线的Bk即为:

Pi,Pi+1,Pi+2连续的三个顶点。

 (见下图) 

 

3.算法实现步骤及真实图像实验结果

首先我们绘制出了想要的结果的草图,然后根据草图,定义出控制顶点,(因为b样条曲线就是根据控制顶点,控制多边形来绘制图形。

从而绘制出控制多边形,然后根据b养条曲线的定义,编辑出代码,将代码输入进matlab软件中,绘制出想要的结果。

 

4.结论:

(本课题研究了什么,有什么意义,如何做的,掌握了什么知识,提高了。

水平等等)

本次课题研究的是b样条曲线以及利用它绘制出十二生肖图案。

我们选择绘制“狗”的图案。

经过两周的努力我们成功完成任务。

在这两周的学习中,我们认识到了b样条曲线在实际应用中的重要地位,也通过这次学习再一次深刻的了解到数学软件的重要性。

我们在图书馆查阅资料,在网上搜集不明白的问题。

最终章掌握了b样条曲线的实际意义,提高了数学水平,也提高了数学软件的应用能力。

真可谓受益匪浅。

 

参考文献(5-8篇)

XX文库

数字图像处理及MATLAB实现杨杰主编电子工业出版社

计算机图形学孙立镌主编哈尔滨工业大学出版社

VisualC++实践与提高----数学图像处理与工程应用篇中国铁道出版社

 

附录:

a=[11.59.57.55758.5975;13.51414.510.58.53.50.581114];

fori=1:

7;

foru=0:

0.001:

1;

b0=1.0./6.*(1-u).^3;

b1=1.0./6.*(3.*u.^3-6.*u.^2+4);

b2=1.0./6.*(-3.*u.^3+3.*u.^2+3.*u+1);

b3=1.0./6.*u.^3;

x=b0.*a(1,i)+b1.*a(1,i+1)+b2.*a(1,i+2)+b3.*a(1,i+3);

y=b0.*a(2,i)+b1.*a(2,i+1)+b2.*a(2,i+2)+b3.*a(2,i+3);

line(x,y);

end

end

>>holdon

a=[8.456.13.75154.756.7553.25;6.7577.25320.513.56];

fori=1:

6;

>>holdon

a=[7.28.29.210.210.7111210.29.27.6;14131315.51715.5161211.711.4];

>>holdon

a=[8.49.2101112;12.611.81111.812.6];

fori=1:

2;

>>holdon

a=[11.31110.711.411.912.611.713.211.69.610.110.29.18.47.7;13.711.89.98.58.565.222.77.22.7223.55];

fori=1:

12;

>>holdon

a=[4.555.56.26.9;43.5333];

fori=1:

2;

>>holdon

a=[456.27.56.24.9;5.53.51.51.534.5];

fori=1:

3;

>>holdon

a=[5.542.52.52.5;9.28.27.25.14.0];

fori=1:

2;

>>holdon

a=[9.28.78.27.98.28.58.8;12.412.412.411.811.811.912];

fori=1:

4;

>>holdon

a=[8.958.78.458.38.15;12.412.412.41211.6];

fori=1:

2;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2