您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 计算机图形学--二维变换--实验代码
#includestdio.h#includeconio.h#includegraphics.h#includemath.hstructpoint{intx;inty;}triangle[3];voidini(){triangle[0].x=20;triangle[0].y=70;triangle[1].x=20;triangle[1].y=100;triangle[2].x=120;triangle[2].y=70;setcolor(WHITE);line(triangle[0].x,triangle[0].y,triangle[1].x,triangle[1].y);line(triangle[0].x,triangle[0].y,triangle[2].x,triangle[2].y);line(triangle[1].x,triangle[1].y,triangle[2].x,triangle[2].y);}voidmove(intdx,intdy){inti;for(i=0;i3;i++){line((triangle[i].x+dx),(triangle[i].y+dy),(triangle[(i+1)%3].x+dx),(triangle[(i+1)%3].y+dy));}getch();setcolor(0);for(i=0;i3;i++){line((triangle[i].x+dx),(triangle[i].y+dy),(triangle[(i+1)%3].x+dx),(triangle[(i+1)%3].y+dy));}}voidzoom(intsx,intsy){intxx[3];intyy[3];inti;for(i=0;i3;i++){xx[i]=(triangle[i].x-triangle[0].x)*sx+triangle[0].x;yy[i]=(triangle[i].y-triangle[0].y)*sy+triangle[0].y;}for(i=0;i3;i++){line(xx[i]+120,yy[i],xx[(i+1)%3]+120,yy[(i+1)%3]);}getch();setcolor(0);for(i=0;i3;i++){line(xx[i]+120,yy[i],xx[(i+1)%3]+120,yy[(i+1)%3]);}}voidturn(intx,inty,inta){inti;intxx[3];intyy[3];for(i=0;i3;i++){xx[i]=(triangle[i].x-x)*cos(a)-(triangle[i].y-y)*sin(a)+x;yy[i]=(triangle[i].x-x)*sin(a)+(triangle[i].y-y)*cos(a)+y;}for(i=0;i3;i++){line(xx[i],yy[i],xx[(i+1)%3],yy[(i+1)%3]);}getch();setcolor(0);for(i=0;i3;i++){line(xx[i],yy[i],xx[(i+1)%3],yy[(i+1)%3]);}}voidsymmetrical(inta,intb,intd,inte){inti;intxx[3];intyy[3];for(i=0;i3;i++){xx[i]=(a*triangle[i].x)+(b*triangle[i].y);yy[i]=(d*triangle[i].x)+(e*triangle[i].y);}for(i=0;i3;i++){line(xx[i]+120+420,yy[i],xx[(i+1)%3]+120+420,yy[(i+1)%3]);}getch();setcolor(0);for(i=0;i3;i++){line(xx[i]+120+420,yy[i],xx[(i+1)%3]+120+420,yy[(i+1)%3]);}}voiddislocation(intb,intd){inti;intxx[3];intyy[3];for(i=0;i3;i++){xx[i]=triangle[i].x+(b*triangle[i].y);yy[i]=(d*triangle[i].x)+triangle[i].y;}for(i=0;i3;i++){line(xx[i],yy[i],xx[(i+1)%3],yy[(i+1)%3]);}getch();setcolor(0);for(i=0;i3;i++){line(xx[i],yy[i],xx[(i+1)%3],yy[(i+1)%3]);}}voidmain(){intgraphdriver=VGA,graphmode=VGAHI;initgraph(&graphdriver,&graphmode,);ini();getch();setcolor(BLUE);move(300,200);ini();setcolor(BLUE);zoom(2,2);ini();setcolor(BLUE);turn(120,70,-1);ini();setcolor(BLUE);symmetrical(-1,0,0,1);ini();setcolor(BLUE);dislocation(0,2);ini();closegraph();}
本文标题:计算机图形学--二维变换--实验代码
链接地址:https://www.777doc.com/doc-5695493 .html