#include "stdio.h"
#include "conio.h"
#include"graphics.h"
#include "math.h"
struct point
{
int x;
int y;
}triangle[3];
void ini()
{ 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);
}
void move(int dx, int dy)
{
int i;
for(i = 0; i < 3; 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; i < 3; i++)
{
line((triangle[i].x+dx),(triangle[i].y+dy),(triangle[(i+1)%3].x+dx),(triangle[(i+1)%3].y+dy));
}
}
void zoom(int sx,int sy)
{
int xx[3];
int yy[3];
int i;
for(i = 0; i < 3; 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; i < 3; i++)
{
line(xx[i]+120,yy[i],xx[(i+1)%3]+120,yy[(i+1)%3]);
}
getch();
setcolor(0);
for(i = 0; i < 3; i++)
{
line(xx[i]+120,yy[i],xx[(i+1)%3]+120,yy[(i+1)%3]);
}
}
void turn(int x, int y, int a)
{
int i;
int xx[3];
int yy[3];
for(i = 0; i < 3; 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; i < 3; i++)
{
line(xx[i],yy[i],xx[(i+1)%3],yy[(i+1)%3]);
}
getch();
setcolor(0);
for(i = 0; i < 3; i++)
{
line(xx[i],yy[i],xx[(i+1)%3],yy[(i+1)%3]);
}
}
void symmetrical(int a, int b, int d, int e)
{
int i;
int xx[3];
int yy[3];
for(i = 0; i < 3; i++){
xx[i]=(a*triangle[i].x)+(b*triangle[i].y);
yy[i]=(d*triangle[i].x)+(e*triangle[i].y);
}
for(i = 0; i