计算机图形学程序TC扫描线算法.docx
- 文档编号:8931862
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:8
- 大小:15.01KB
计算机图形学程序TC扫描线算法.docx
《计算机图形学程序TC扫描线算法.docx》由会员分享,可在线阅读,更多相关《计算机图形学程序TC扫描线算法.docx(8页珍藏版)》请在冰豆网上搜索。
计算机图形学程序TC扫描线算法
计算机图形学程序——扫描线算法
#include
#include
#include
#include
#include
#include
voidparspl(intp[10000][2],longn,intprecision,intcolor)
{
intx=0,y=0,i=0,j=0,m=0;
doublet2=0,t3=0,t=0,a,b,c,d,e=p[1][0]+5,f=p[1][1]+5;
setcolor(color);
m=n+1;
p[0][0]=p[n][0];
p[0][1]=p[n][1];
p[m][0]=p[1][0];
p[m][1]=p[1][1];
p[m+1][0]=p[2][0];
p[m+1][1]=p[2][1];
moveto(p[1][0],p[1][1]);
for(i=0;i { t=0.5/precision; for(j=1;j { t2=t*t; t3=t2*t; a=4*t2-t-4*t3; b=1-10*t2+12*t3; c=t+8*t2-12*t3; d=4*t3-2*t2; x=a*p[i][0]+b*p[i+1][0]+c*p[i+2][0]+d*p[i+3][0]; y=a*p[i][1]+b*p[i+1][1]+c*p[i+2][1]+d*p[i+3][1]; lineto(x,y); line(e,f,x+5,y+5); moveto(x,y); t+=0.5/precision; e=x+5; f=y+5; } lineto(p[i+2][0],p[i+2][1]); moveto(e,f); lineto(p[i+2][0]+5,p[i+2][1]+5); moveto(p[i+2][0],p[i+2][1]); } } intmain() { longn=5; charpwd[4]; intp[100][2]; inta1,a2,b1,b2,c1,c2,d1,d2,e1,e2; intgdriver=VGA,gmode=VGAHI; initgraph(&gdriver,&gmode,"c: \\tc"); setbkcolor(0); a1=p[1][0]=320; a2=p[1][1]=240; b1=p[2][0]=320; b2=p[2][1]=120; c1=p[3][0]=452; c2=p[3][1]=128; d1=p[4][0]=382; d2=p[4][1]=388; e1=p[5][0]=364; e2=p[5][1]=280; loop: if(a1<=p[1][0]&&p[1][0]<=520) { a1=p[1][0]; p[1][0]+=1; } else { if(p[1][0]>=120) { a1=p[1][0]; p[1][0]-=1; } else a1=p[1][0]=120; } if(a2>=p[1][1]&&p[1][1]>=60) { a2=p[1][1]; p[1][1]-=2; } else { if(p[1][1]<=420) { a2=p[1][1]; p[1][1]+=2; } else a2=p[1][1]=420; } if(b1>=p[2][0]&&p[2][0]>=120) { b1=p[2][0]; p[2][0]-=2; } else { if(p[2][0]<=520) { b1=p[2][0]; p[2][0]+=2; } else b1=p[2][0]=520; } if(b2<=p[2][1]&&p[2][1]<=420) { b2=p[2][1]; p[2][1]+=1; } else { if(p[2][1]>=60) { b2=p[2][1]; p[2][1]-=1; } else b2=p[2][1]=60; } if(c1<=p[3][0]&&p[3][0]<=520) { c1=p[3][0]; p[3][0]+=1; } else { if(p[3][0]>=120) { c1=p[3][0]; p[3][0]-=1; } else c1=p[3][0]=120; } if(c2<=p[3][1]&&p[3][1]<=420) { c2=p[3][1]; p[3][1]+=1; } else { if(p[3][1]>=60) { c2=p[3][1]; p[3][1]-=1; } else c2=p[3][1]=60; } if(d1>=p[4][0]&&p[4][0]>=120) { d1=p[4][0]; p[4][0]-=1; } else { if(p[4][0]<=520) { d1=p[4][0]; p[4][0]+=1; } else d1=p[4][0]=520; } if(d2>=p[4][1]&&p[4][1]>=60) { d2=p[4][1]; p[4][1]-=1; } else { if(p[4][1]<=420) { d2=p[4][1]; p[4][1]+=1; } else d2=p[4][1]=420; } if(e1<=p[5][0]&&p[5][0]<=520) { e1=p[5][0]; p[5][0]+=1; } else { if(p[5][0]>=120) { e1=p[5][0]; p[5][0]-=1; } else e1=p[5][0]=120; } if(e2<=p[5][1]&&p[5][1]<=420) { e2=p[5][1]; p[5][1]+=2; } else { if(p[5][1]>=60) { e2=p[5][1]; p[5][1]-=2; } else e2=p[5][1]=60; } parspl(p,n,100,4); parspl(p,n,100,4); if(bioskey (1)>0) { printf("PleaseInputPassword: "); gets(pwd); if(! strcmp(pwd,"cmy")) { clearviewport(); closegraph(); return1; } } cleardevice(); gotoloop; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 程序 TC 扫描 算法