《二次B样条曲线(共2页).doc》由会员分享,可在线阅读,更多相关《二次B样条曲线(共2页).doc(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上二次B样条曲线(4个顶点):#include#includemain() float t; int x,y; int n=100,i=0; float x0=0,x1=100,x2=200,x3=300,y0=300,y1=0,y2=300,y3=0; int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,); printf(Input x0,y0,x1,y1,x2,y2n); /*scanf(%d,%d,%d,%d,%d,%d,&x0,&y0,&x1,&y1,&x2,&y2);*/ cleardevice(); se
2、tbkcolor(0);setcolor(10); for(t=0;t=1.0;t+=1.0/n) x=x0*1/2*(t-1)*(t-1)+x1*1/2*(-2*t*t+2*t+1)+x2*1/2*t*t; y=y0*1/2*(t-1)*(t-1)+y1*1/2*(-2*t*t+2*t+1)+y2*1/2*t*t; /*x=(int)(x0-2*x1+x2)*t*t+(2*x1-2*x0)*t+x0); y=(int)(y0-2*y1+y2)*t*t+(2*y1-2*y0)*t+y0); */ if(i=0) putpixel(x,y,4); moveto(x,y); else lineto
3、(x,y); moveto(x,y); i+; i=0; for(t=0;t=1.0;t+=1.0/n) x=x1*1/2*(t-1)*(t-1)+x2*1/2*(-2*t*t+2*t+1)+x3*1/2*t*t; y=y1*1/2*(t-1)*(t-1)+y2*1/2*(-2*t*t+2*t+1)+y3*1/2*t*t; /*x=(int)(x0-2*x1+x2)*t*t+(2*x1-2*x0)*t+x0); y=(int)(y0-2*y1+y2)*t*t+(2*y1-2*y0)*t+y0); */ if(i=0) putpixel(x,y,4); moveto(x,y); else lineto(x,y); moveto(x,y); i+; getch();closegraph();运行结果如下图:专心-专注-专业