计算机图形学--二维变换--实验代码(共4页).doc
精选优质文档-倾情为你奉上#include "stdio.h"#include "conio.h"#include"graphics.h"#include "math.h"struct point int x; int y;triangle3;void ini() triangle0.x = 20; triangle0.y = 70; triangle1.x = 20; triangle1.y = 100; triangle2.x = 120; triangle2.y = 70; setcolor(WHITE); line(triangle0.x,triangle0.y,triangle1.x,triangle1.y); line(triangle0.x,triangle0.y,triangle2.x,triangle2.y); line(triangle1.x,triangle1.y,triangle2.x,triangle2.y);void move(int dx, int dy) int i; for(i = 0; i < 3; i+) line(trianglei.x+dx),(trianglei.y+dy),(triangle(i+1)%3.x+dx),(triangle(i+1)%3.y+dy); getch(); setcolor(0); for(i = 0; i < 3; i+) line(trianglei.x+dx),(trianglei.y+dy),(triangle(i+1)%3.x+dx),(triangle(i+1)%3.y+dy); void zoom(int sx,int sy) int xx3; int yy3; int i; for(i = 0; i < 3; i+) xxi=(trianglei.x-triangle0.x)*sx+triangle0.x; yyi=(trianglei.y-triangle0.y)*sy+triangle0.y; for(i = 0; i < 3; i+) line(xxi+120,yyi,xx(i+1)%3+120,yy(i+1)%3); getch(); setcolor(0); for(i = 0; i < 3; i+) line(xxi+120,yyi,xx(i+1)%3+120,yy(i+1)%3); void turn(int x, int y, int a) int i; int xx3; int yy3; for(i = 0; i < 3; i+) xxi=(trianglei.x-x)*cos(a)-(trianglei.y-y)*sin(a)+x; yyi=(trianglei.x-x)*sin(a)+(trianglei.y-y)*cos(a)+y; for(i = 0; i < 3; i+) line(xxi,yyi,xx(i+1)%3,yy(i+1)%3); getch(); setcolor(0); for(i = 0; i < 3; i+) line(xxi,yyi,xx(i+1)%3,yy(i+1)%3); void symmetrical(int a, int b, int d, int e) int i; int xx3; int yy3; for(i = 0; i < 3; i+) xxi=(a*trianglei.x)+(b*trianglei.y); yyi=(d*trianglei.x)+(e*trianglei.y); for(i = 0; i < 3; i+) line(xxi+120+420,yyi,xx(i+1)%3+120+420,yy(i+1)%3); getch(); setcolor(0); for(i = 0; i < 3; i+) line(xxi+120+420,yyi,xx(i+1)%3+120+420,yy(i+1)%3); void dislocation(int b, int d) int i; int xx3; int yy3; for(i = 0; i < 3; i+) xxi=trianglei.x+(b*trianglei.y); yyi=(d*trianglei.x)+trianglei.y; for(i = 0; i < 3; i+) line(xxi,yyi,xx(i+1)%3,yy(i+1)%3); getch(); setcolor(0); for(i = 0; i < 3; i+) line(xxi,yyi,xx(i+1)%3,yy(i+1)%3); void main() int graphdriver=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();专心-专注-专业