14. 3D Scaling Program Using C Programming

/*3D Scaling Example Program In C*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<process.h>
#include<graphics.h>

int x1, x2, y1, y2, mx, my, depth;

void draw();
void scale();

void main() {
   int gd = DETECT, gm, c;
   initgraph(&gd, &gm, "d:\\tc\\bgi");
   printf("\n\t\t3D Transformation Scalling\n\n");
   printf("\nEnter 1st top value(x1,y1):");
   scanf("%d%d", &x1, &y1);
   printf("Enter right bottom value(x2,y2):");
   scanf("%d%d", &x2, &y2);
   depth = (x2 - x1) / 4;
   mx = (x1 + x2) / 2;
   my = (y1 + y2) / 2;
   draw();
   getch();
   cleardevice();
   scale();
   getch();
}

void draw() {
   bar3d(x1, y1, x2, y2, depth, 1);
}

void scale() {
   int x, y, a1, a2, b1, b2, dep;
   printf("\n\n Enter scalling co-ordinates:");
   scanf("%d%d", &x, &y);
   a1 = mx + (x1 - mx) * x;
   a2 = mx + (x2 - mx) * x;
   b1 = my + (y1 - my) * y;
   b2 = my + (y2 - my) * y;
   dep = (a2 - a1) / 4;
   bar3d(a1, b1, a2, b2, dep, 1);
   setcolor(5);
   draw();
}