计算机图形学程序TC扫描线算法.docx

上传人:b****7 文档编号:8931862 上传时间:2023-02-02 格式:DOCX 页数:8 大小:15.01KB
下载 相关 举报
计算机图形学程序TC扫描线算法.docx_第1页
第1页 / 共8页
计算机图形学程序TC扫描线算法.docx_第2页
第2页 / 共8页
计算机图形学程序TC扫描线算法.docx_第3页
第3页 / 共8页
计算机图形学程序TC扫描线算法.docx_第4页
第4页 / 共8页
计算机图形学程序TC扫描线算法.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

计算机图形学程序TC扫描线算法.docx

《计算机图形学程序TC扫描线算法.docx》由会员分享,可在线阅读,更多相关《计算机图形学程序TC扫描线算法.docx(8页珍藏版)》请在冰豆网上搜索。

计算机图形学程序TC扫描线算法.docx

计算机图形学程序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;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1