计算机图形学实验 下载本文

内容发布更新时间 : 2024/12/23 23:35:04星期一 下面是文章的全部内容请认真阅读。

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(); }

实验截图: