曲面加工几何学_第1页
曲面加工几何学_第2页
曲面加工几何学_第3页
曲面加工几何学_第4页
曲面加工几何学_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连理工大学微分几何作业学 院:机械工程学院姓 名:学 号:授课教师:王晓明电子邮箱:_完成时间:2012年6月25日1 / 18非均匀有理B样条(NURBS曲线和曲面1.非均匀有理B样条曲线(3阶)NURB曲线提供了对标准解析几何和自由曲线、曲面的统一数学描述方法, 它可通过调整控制顶点和权因子,方便地改变曲面形状,同时也可方便地转换成 对应Bezier曲面。给定n+1个控制点及权因子,则k阶(k-1 )次NURB曲线的表达式为:nNj,k(x)WRr(x)i 0nNi,k(x)Wii 0其中:Ni,k(u)为非均匀有理B样条基函数,按照deBoor-Cox递推公式,基53 / 18函数满足

2、一下关系:叫,k(x)1,当ui uui 1其它Ni,k(x)(x uJNi,k1(x)ui k 1ui(u k x)Nj 1,k 1(x)ui kui 11.1. 曲线的建立本文选取四个控制顶点R,,P2,,Pa,,P4,,已经四个权因子W,W2,W,W,通过Matlab计算其基函数,并作出曲线010P控制顶点:000.5101;权因子:w2 5 1 3 ;111.5非均匀节点:u 124 56.5 7.5 8 9.3由Matlab绘制曲线如下:控制多边形 B-样条曲线在每个点上标注其Frenet标架如图:控制多边形 B-样条曲线alphabetagama$ 41 .1 .1218 6 a

3、a4 2a ao0在每个点上标注其曲率、挠率如图:控制多边形B-样条曲线曲率2.非均匀有理B样条曲面(3阶)假设给定R3空间中,齐次坐标下的 mini个点p控制多边形一 B-样条曲线挠率(X ij,Yij,Zij,wij)(WjXj,WjYj,WjZj ,Wj),i 0,1, ,m; j=0,1, ,n,0,则参数曲面:m nR(u,v) (X(u,v),Y(u,v),Z(u,v),w(u,v)R,j Bm(u)B:(v), u 0,v 0i 0 j 0称为矩形域0,1x0,1上的mxn次有理B样条曲面。其中Rj称为控制顶点,Wj称 为权因子。NURBS曲面的表达式为:m nWi,jR,jNi

4、,k(u)Nj(v)R(u,v)i 0 j 0nW,jNi,k(u)Nj(v)i 02.1. 曲面计算的基本公式曲面第一基本形式:F ru rv,曲面第二基本形式:L n 5, M n ,N n 5。高斯曲率计算公式:2L N ME G F2平均曲率计算公式:曲面主曲率计算公式:ki H . H2 K ,k2 H . H2 K2.2. 曲面的建立选择16个顶点构造B样条曲面,如表1所示: 表116个顶点坐标数据序号xyz1-24.8849.76-4.352-23.660.560.153-19.4771.915.174-11.9981.099.785-22.8950.75-3.016-21.03

5、61.451.447-16.6572.446.348-9.4781.3510.729-20.2551.91-1.2910-17.6662.433.1811-12.9672.967.9112-6.1581.5711.9513-16.3453.371.0414-12.8163.545.5715-7.6173.4110.0416-1.4581.7213.6720.5130.310.82w权因子:11.510.8 ;0.5010.51图1 B样条曲面高斯曲率 KW 茬图2 B样条曲面平均曲率 H图3 E值图5 G值图6 L值计算结果如图:图9 k1值图10 k2值3.参考文献1 王省富.样条函数及其应

6、用M.西北工业大学出版社,1989,9,西安.2 张化光,刘鑫蕊,孙秋野.MATLAB/SIMULINK 实用教程M.人民邮电出版 社,2009,3,北京.3 John H. Mathews, Kurtis D. Fink.数值方法(MATLAB 版).电子工业出版社, 2002,6,北京.附录( Matlab 源程序):非均匀有理B样条曲线(3阶)function NURBS3 clear;clc;syms r P= 0 1 0; 0 0 0.5; 1 0 1; 1 1 1.5;w=2,0.5,1,3;%插入点权重% w=2,2,2,2;%权重相等时u=1 2 4 5 6.5 7.5 8 9

7、.3;%非均匀节点(构造样条基函数)k=3;%三阶非均匀有理 B 样条曲线n=size(P,1);%控制点数目nu=size(u,2);%非均匀节点数if nu=n+k+1M=100;r1=zeros(M,3);r2=zeros(M,3);r=zeros(M,3);X=linspace(u(k+1),u(n+1),M);for l=1:M%构造非均匀有理 B 样条基函数x=X(l);N=zeros(n+k,k+1);for i=1:n+kif x=u(i)&x,W4,w4,通过Matlab计算其基函数,并作出曲线。Clear ;clcfid=fopen(Data.dat,r);k=1;s=fs

8、canf(fid,%s,1);% 读字符串 1 维num=0; %NU的行数Dotnum=zeros(1); % 保存每个NUM勺点的个数Dot=cell(1); % 保存每个NUM勺点的坐标while k=1读整型数据 2 维if strcmp(s,NUM)a=fscanf(fid,%d,2);%num=num+1;k=1;elsek=0;break;endb=fscanf(fid,%f,3*a(2);% 读浮点型数据 3*a(2) 维Dotnum(num)=a(2);b=reshape(b,3,a(2);%将 b 转化为 3 行 19 列Dotnum=b; %clear aclear bs

9、 = fscanf(fid,%s,1);% 读字符串 1 维end% hold;view(3);u=0:0.08:1;v=0:0.04:1;a1=(1-3*u+3*u.*u-u.*u.*u);a2=(3*u-6*u.*u+3*u.*u.*u);a3=(3*u.*u-3*u.*u.*u);a4=u.*u.*u;b1=(1-3*v+3*v.*v-v.*v.*v);b2=(3*v-6*v.*v+3*v.*v.*v);b3=(3*v.*v-3*v.*v.*v);b4=v.*v.*v;aa1=(-3+6*u-3*u.*u);aa2=(3-12*u+9*u.*u);aa3=(6*u-9*u.*u);aa4

10、=3*u.*u; bb1=(-3+6*v-3*v.*v);bb2=(3-12*v+9*v.*v);bb3=(6*v-9*v.*v);bb4=3*v.*v;aaa1=(6-6*u);aaa2=(-12+18*u);aaa3=(6-18*u);aaa4=6*u; bbb1=(6-6*v);bbb2=(-12+18*v);bbb3=(6-18*v);bbb4=6*v;for h=1:length(u)a(h,:)=a1(h) a2(h) a3(h) a4(h);aa(h,:)=aa1(h) aa2(h) aa3(h) aa4(h);aaa(h,:)=aaa1(h) aaa2(h) aaa3(h) a

11、aa4(h);endfor k=1:length(v)b(k,:)=b1(k) b2(k) b3(k) b4(k);bb(k,:)=bb1(k) bb2(k) bb3(k) bb4(k);bbb(k,:)=bbb1(k) bbb2(k) bbb3(k) bbb4(k);end% for i=1:num-3for j=1:Dotnum(num)-3xc=Doti(j,1),Doti(j+1,1),Doti(j+2,1),Doti(j+3,1);Doti+1(j,1) ,Doti+1(j+1,1),Doti+1(j+2,1),Doti+1(j+3,1);Doti+2(j,1),Doti+2(j+1

12、,1),Doti+2(j+2,1),Doti+2(j+3,1);Doti+3 (j,1),Doti+3(j+1,1),Doti+3(j+2,1),Doti+3(j+3,1);yc=Doti(j,2),Doti(j+1,2),Doti(j+2,2),Doti(j+3,2);Doti+1(j,2) ,Doti+1(j+1,2),Doti+1(j+2,2),Doti+1(j+3,2);Doti+2(j,2),Doti+2(j+1,2),Doti+2(j+2,2),Doti+2(j+3,2);Doti+3 (j,2),Doti+3(j+1,2),Doti+3(j+2,2),Doti+3(j+3,2);

13、zc=Doti(j,3),Doti(j+1,3),Doti(j+2,3),Doti(j+3,3);Doti+1(j,3) ,Doti+1(j+1,3),Doti+1(j+2,3),Doti+1(j+3,3);Doti+2(j,3),Doti+2(j+1,3),Doti+2(j+2,3),Doti+2(j+3,3);Doti+3(j,3),Doti+3(j+1,3),Doti+3(j+2,3),Doti+3(j+3,3);A=a*xc*b;% 曲面上点的坐标赋值B=a*yc*b; C=a*zc*b;rA=A;rB=B;rC=C;surf(A,B,C),shading interp;colorma

14、p(jet) % 彩色显示 endendfor i=1:num-3for j=1:Dotnum(num)-3xc=Doti(j,1),Doti(j+1,1),Doti(j+2,1),Doti(j+3,1);Doti+1(j,1) ,Doti+1(j+1,1),Doti+1(j+2,1),Doti+1(j+3,1);Doti+2(j,1),Doti+2(j+1,1),Doti+2(j+2,1),Doti+2(j+3,1);Doti+3 (j,1),Doti+3(j+1,1),Doti+3(j+2,1),Doti+3(j+3,1);yc=Doti(j,2),Doti(j+1,2),Doti(j+2

15、,2),Doti(j+3,2);Doti+1(j,2) ,Doti+1(j+1,2),Doti+1(j+2,2),Doti+1(j+3,2);Doti+2(j,2),Doti+2(j+1,2),Doti+2(j+2,2),Doti+2(j+3,2);Doti+3 (j,2),Doti+3(j+1,2),Doti+3(j+2,2),Doti+3(j+3,2);zc=Doti(j,3),Doti(j+1,3),Doti(j+2,3),Doti(j+3,3);Doti+1(j,3) ,Doti+1(j+1,3),Doti+1(j+2,3),Doti+1(j+3,3);Doti+2(j,3),Doti

16、+2(j+1,3),Doti+2(j+2,3),Doti+2(j+3,3);Doti+3 (j,3),Doti+3(j+1,3),Doti+3(j+2,3),Doti+3(j+3,3);for h=1:length(u)for k=1:length(v)A=a(h,:)*xc*b(k,:);% 曲面上点的坐标赋值B=a(h,:)*yc*b(k,:);C=a(h,:)*zc*b(k,:);Au=aa(h,:)*xc*b(k,:); Av=a(h,:)*xc*bb(k,:);Bu=aa(h,:)*yc*b(k,:); Bv=a(h,:)*yc*bb(k,:);Cu=aa(h,:)*zc*b(k,:

17、); Cv=a(h,:)*zc*bb(k,:);Auu=aaa(h,:)*xc*b(k,:); Avv=a(h,:)*xc*bbb(k,:);Buu=aaa(h,:)*yc*b(k,:); Bvv=a(h,:)*yc*bbb(k,:);Cuu=aaa(h,:)*zc*b(k,:); Cvv=a(h,:)*zc*bbb(k,:);Auv=aa(h,:)*xc*bb(k,:); Buv=aa(h,:)*yc*bb(k,:);Cuv=aa(h,:)*zc*bb(k,:);Sz=Au,Bu,Cu; Sf=Av,Bv,Cv;Sff=Avv,Bvv,Cvv; Sfz=Auv,Buv,Cuv;Szz=Auu

18、,Buu,Cuu;N=cross(Sz,Sf); n=N/norm(N,2);E(h,k)=dot(Sz,Sz);F(h,k)=dot(Sz,Sf);G(h,k)=dot(Sf,Sf);L(h,k)=dot(Szz,n);M(h,k)=dot(Sfz,n);N(h,k)=dot(Sff,n);f2(h,k)=L(h,k)*N(h,k)-M(h,k)*M(h,k);f1(h,k)=E(h,k)*G(h,k)-F(h,k)*F(h,k);K(h,k)=f2(h,k)/f1(h,k); % 高斯曲率平均曲H(h,k)=L(h,k)*G(h,k)-2*M(h,k)*F(h,k)+N(h,k)*E(h,

19、k)/(f1(h,k);% 率k1(h,k)=H(h,k)+sqrt(H(h,kF2-K(h,k); k2(h,k)=H(h,k)-sqrt(H(h,kF2-K(h,k);%高%斯%曲%率% bl=1000;if (H(h,k)=NaN)break;elseAD(h,k)=A+bl*1.0/H(h,k)*n(:,1);BD(h,k)=B+bl*1.0/H(h,k)*n(:,2);CD(h,k)=C+bl*1.0/H(h,k)*n(:,3);line(A AD(h,k),B BD(h,k),C CD(h,k),Color,b);endendendendendfigure(2);surf(rA,r

20、B,rC),shading interp;colormap(jet) % 彩色显示 hold on;grid on;for i=1:size(rA,1)for j=1:size(rA,2)quiver3(rA(i,j),rB(i,j),rC(i,j),0,0,E(i,j),b);endendfigure(3);surf(rA,rB,rC),shading interp;colormap(jet) % 彩色显示 hold on;grid on;for i=1:size(rA,1)for j=1:size(rA,2)quiver3(rA(i,j),rB(i,j),rC(i,j),0,0,F(i,j

21、)/20,b);endendfigure(4);surf(rA,rB,rC),shading interp;colormap(jet) % 彩色显示hold on;grid on;for i=1:size(rA,1)for j=1:size(rA,2)quiver3(rA(i,j),rB(i,j),rC(i,j),0,0,G(i,j)/20,b);endendfigure(5);surf(rA,rB,rC),shading interp;colormap(jet) %hold on;grid on;for i=1:size(rA,1)for j=1:size(rA,2)quiver3(rA(i,j),rB(i,j),rC(i,j),0,0,L(i,j),b);endendfigure(6);surf(rA,rB,rC),shading interp;colormap(jet) %hold on;grid on;for i=1:size(rA,1)for j=1:size(rA,2)qui

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论