预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1:角度DDA法绘制椭圆的程序:VoidlineDDA(intx1,inty1,intx2,inty2,intcolor)x=x0+acost;y=y0+bsint{if{abs(x2-x1)>=abs(y2-y1);dm=abs(x2-x1)}Else{dm=abs(y2-y1)}floatdx=(float)(x2-x1)/dm;floatx=(float)(x1+0.5);floaty=(float)(y1+0.5);for(inti=0;i<dm;i++)Setpixel(intx,inty,intcolor)x+=dx;y+=dy;}}2:绘制抛物线的程序:Par(intxs,intys,intxm,intym,intxe,intye){doubled,d1,ax,bx,by;intn,i;ax=(xe-2*xm+xs)*2.0;ay=(ye-2*ym+ys)*2.0;bx=xe-xs-ax;by=ye-ys-ay;n=sqrt(ax*ax+ay*ay);d=1.0/n;d1=d;for(i=0;i<=n;i++){lineto((ax*d1+bx*d1+xs),(ay*d1*d1+by*d1+ys);d1+=d;}Lineto(xe,ye);}3:绘制三次Hermite曲线的程序:(给出四个点P0,P1,P2,P3,要在P1和P2之间绘一条Hermite曲线,用向量P0P1作为P1处的切线向量,用P2P3作为P2处的切线矢量)VoidHermiteCurve(Pointpo,Pointp1,Pointp2,Pointp3,intcount){Pointr1,r2;//切线矢量r1=p1-p0;//调用重载r2=p3-p2;doublet=0.0;dt=1.0/count;moveto(p1.x,p1.y);//设置起点for(inti=0;i<count+1;i++){doublett=t*t;doublettt=t*t*t;DoubleF1,F2,F3,F4;//调和函数F1=2*ttt-3*tt+1;F2=-2*ttt+3*tt;F3=ttt-2*tt+t;F4=ttt-tt;doublex=p1.x*F1+p2.x*F2+r1.x*F3+r2.x*F4;doublex=p1.y*F1+p2.y*F2+r1.y*F3+r2.y*F4;Lineto(x,y);t+=dt;}}4:绘制三次Bezier曲线和三次B样条曲线的程序(以四个点P0,P1,P2,P3作为控制多边形)VoidBezierCurve(Pointp0,Pintp1,Pointp2,Pointp3,intcount){doublet=0.0;dt=1.0/count;moveto(p1.x,p1.y);//设置起点for(inti=0;i<count+1;i++){doubleF1,F2,F3,F4,x,y;//调和函数doubleu=1.0-t;F1=u*u*u;F2=3*t*u*u;F3=3*t*t*u;F4=t*t*t;x=p0.x*F1+p1.x+F2+p2.x*F3+p3.x*F4;y=po.y*F1+p1.y*F2+p2.y*F3+p3.y*F4;Lineto(x,y);t+=dt;}}VoidB_SpLine((Pointp0,Pintp1,Pointp2,Pointp3,intcount){doublet=0.0;dt=1.0/count;For(inti=0;i<count+1;i++){doublett=t*t;doublettt=tt*t;DoubleF1,F2,F3,F4;//调和函数F1=-ttt+3*tt-3*t+1;F2=3*ttt-6*tt+4;F3=-3*ttt+3*tt+3*t+1;F4=ttt;x=p0.x*F1+p1.x*F2+p2.x*F3+p3.x*F4;y=p0.y*F1+p1.y*F2+p2.y*F3+p3.y*F4;x/=6.0;y/=6.0;if(i==0)moveto(x,y);elselineto(x,y);t+=dt;}}5:写出光线跟踪算法(Ray-Tracing算法)的伪代码ColorTraceRay(start,direction,depth)Vectorstart,directionIntdepth{if(depth>MAX_DEPTH)color=黑色;else{光线与物体求交,找出离start最近的交点;If(无交点)color=背景色;Else{local——color=用局部光照模型计算出交点处的光强