Function:
void translation( int figure[], int edges, int dx, int dy ) {
for (int i=0; i < edges; i++) {
figure[2*i] += dx;
figure[2*i+1] += dy;
}
}
C Program
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
void translation( int figure[], int edges, int dx, int dy ) {
for (int i=0; i < edges; i++) {
figure[2*i] += dx;
figure[2*i+1] += dy;
}
}
void main() {
int figure[20], edges, dx, dy;
// A Figure with Max 10 edges.
int gd = DETECT, gm;
clrscr();
printf( "Number of edges: " );
scanf( "%d", &edges );
for (int i=0; i < edges; i++) {
printf( "Enter edge (x%d,y%d) : ", i , i );
scanf( "%d %d", &figure[2*i], &figure[2*i+1] );
}
figure[2*i] = figure[0];
figure[2*i+1] = figure[1];
edges += 1;
printf( "Enter dx: ");
scanf( "%d", &dx);
printf( "Enter dy: ");
scanf( "%d", &dy);
initgraph( &gd, &gm, "" );
cleardevice();
drawpoly( edges, figure );
getch();
translation(figure,edges,dx,dy);
setcolor(RED);
drawpoly( edges, figure );
getch();
}