计算机图形学实验

q[i]=p[i];

for(r=1;r

q[i].x=(1.0-u)*q[i].x+u*q[i+1].x; q[i].y=(1.0-u)*q[i].y+u*q[i+1].y; } return q[0]; }

void draw_bezier_curve(struct node p[],int n,int x0,int y0) {

int i,x,y; float u,delta; struct node point;

delta=1.0/(float)(MULTIPLE*ROW); for(i=0,u=0;u<=1.0;i++,u=u+delta){ point=decasteljau(p,n,u);

if(i==0)moveto(x0+point.x,y0-point.y); lineto(x0+point.x,y0-point.y); } } main()

{

int gdriver=DETECT,gmode; int number,n,originx,originy;

struct node a[]={{120,0},{45,0},{0,45},{0,120}};

initgraph(&gdriver,&gmode,\ originx=getmaxx()/2; originy=getmaxy()/2; setcolor(BLUE);

draw_polygon(a,originx,originy); setcolor(RED);

draw_bezier_curve(a,ROW,originx,originy); getch(); closegraph(); }

实验截图:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4