C Program For 2D Transformation of Scaling mohanmo V+ Member   10-05-2013, 02:34 PM (This post was last modified: 10-05-2013, 02:35 PM by mohanmo.) Program Name: 2 D Scaling Program Language:c Program Requirements:C++ Or C Program Compilers Program Description: Scaling is a linear transformation that enlarges or diminishes objects. When we talk about scaling we usually mean some amount of scaling along each dimension. That is, we must specify how much to change the size along each dimension. To know more on what scaling is and its matrix representation see 2D scaling Source Code: Code: ```#include #include #include void scale( int figure[], int edges, int dx, int dy, int cx, int cy ) {     for(int i=0; i < edges; i++)     {         figure[2*i] = (figure[2*i] - cx) * dx + cx;         figure[2*i+1] = (figure[2*i+1] - cy) * dy + cy;     } } void main() {     int figure[20], edges; // A Figure with Max 10 edges.     int dx, dy, cx=0, cy=0;     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);     printf( "Enter the center of scaling: \n");     printf( "cx: ");     scanf( "%d", &cx);     printf( "cy: ");     scanf( "%d", &cy);     initgraph( &gd, &gm, "" );     cleardevice();     setbkcolor(WHITE);     setcolor(GREEN);     setlinestyle(SOLID_LINE, 0, 3);     drawpoly( edges, figure );     getch();     scale(figure,edges,dx,dy,cx,cy);     setcolor(RED);     drawpoly( edges, figure );     getch(); }``` Make a Great History « Next Oldest | « Next Newest