计算机图形学实验报告B样条曲线.doc_第1页
计算机图形学实验报告B样条曲线.doc_第2页
计算机图形学实验报告B样条曲线.doc_第3页
计算机图形学实验报告B样条曲线.doc_第4页
全文预览已结束

下载本文档

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

文档简介

姓 名:黄仁化 学 号:03101015151017实验内容:B样条曲线实验目的:了解B样条曲线成条特点i=0B样条曲线的方程定义为:P(t)=PiNi.k(t)其中,Pi(i=0,1,n)是控制多边形的顶点,Ni.k(t)(i=0,1,n)称为k阶(k-1次)B样条基函数,其中每一个称为B样条,它是一个由称为节点矢量的非递减的参数t的序列T:t0t1tn+k所决定的k阶分段多项多,也即为k阶(k-1次)多项式样条。B样条曲线算法描述:1. 三次B是由Beizier曲线改进得到,由连续的四个离散点拟合一小段,它过四个点中最外的两端点,但不一定过当中的两点,各个小段合在一块组成一光滑曲线。2. 三次B样条曲线的基函数为G03(t)=1/6(-t3+3*t2-3*t+1)G13(t)=1/6(3*t3-6*t2+4)G23(t)=1/6(-3*t3+3*t2+3*t+1)G33(t)=1/6*t33. 三次B样条曲线段P3(t)1/6*t3t2t1-1 3 -3 13 -6 3 0 -3 03 0 (T)1 41 0p0 p1 p2 p3-(转置)四个离散点为 p0 p1 p2 p34. B样条算法#include#include#define N 10float pxN=20,75,122,187,225,242,280,318,349,402;float pyN=98,265,154,152,243,298,102,202,248,130;main() float a0,a1,a2,a3,b0,b1,b2,b3; int k,x,y; float i,t,dt; int graphDriver=DETECT; int graphMode=0; initgraph(&graphDriver,&graphMode,); setbkcolor(WHITE); setcolor(RED); line(50,300,600,300); line(100,10,100,320); dt=1/(float)N; for(k=0;kN;k+) if(k=0) moveto(pxk+100,300-pyk); lineto(pxk+100,300-pyk); setlinestyle(0,0,3); for(k=0;kN-3;k+) a0=(pxk+4*pxk+1+pxk+2)/6; a1=(pxk+2-pxk)/2; a2=(pxk-2*pxk+1+pxk+2)/2; a3=-(pxk-3*pxk+1+3*pxk+2-pxk+3)/6; b0=(pyk+4*pyk+1+pyk+2)/6; b1=(pyk+2-pyk)/2; b2=(pyk-2*pyk+1+pyk+2)/2; b3=-(pyk-3*pyk+1+3*pyk+2-pyk+3)/6; for(i=0;iN;i+=0.1) t=i*dt; x=100+a0+a1*t+a2*t*t+a3*t*t*t; y=300-(b0+b1*t+b2*t*t+b3*t*t*t)

温馨提示

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

评论

0/150

提交评论