| Current Path : /var/www/html/venkat/check3/file/cg2013/pawan/ |
| Current File : /var/www/html/venkat/check3/file/cg2013/pawan/RIT2013045_1.cpp |
#include <stdio.h>
#include <math.h>
#define pi 3.14159265358979323846
using namespace std;
int main() {
int arr[24][3] = { {-100,700,0},
{-100,500,0},
{100,700,0},
{100,500,0},
{-50,0,0},
{-50,500,0},
{-150,0,0},
{-500,400,0},
{-500,400,0},
{-100,700,0},
{-50,0,0},
{-400,400,0},
{-400,400,0},
{-100,600,0},
{50,0,0},
{50,500,0},
{150,0,0},
{500,400,0},
{500,400,0},
{100,700,0},
{50,0,0},
{400,400,0},
{400,400,0},
{100,600,0}
};
int i,j;
int d = 10;
float brr[24][3],crr[24][3],drr[24][3];
int p[24][3];
// for translation
for (i = 0; i < 24; i++) {
brr[i][0] = arr[i][0] - 0;
brr[i][1] = arr[i][1] - (-100);
brr[i][2] = arr[i][2] - 10;
}
double x,y,z;
x = (pi/2 + atan(0.1));
y = cos(x);
z = sin(x);
// printf("%lf %lf %lf\n",x,y,z);
// for rotation
for (i = 0; i < 24; i++) {
crr[i][0] = brr[i][0];
crr[i][1] = (brr[i][1])*(y) - (brr[i][2])*(z);
crr[i][2] = (brr[i][1])*(z) + (brr[1][2])*(y);
}
// for perspective
for (i = 0; i < 24; i++) {
drr[i][0] = ((crr[i][0])*d)/(crr[i][2]);
drr[i][1] = ((crr[i][1])*d)/(crr[i][2]);
drr[i][2] = d;
}
int x1,y1,z1;
// for perspective
for (i = 0; i < 24; i++) {
for (j = 0; j < 3; j++) {
p[i][j] = (int)(drr[i][j] + 0.5);
// printf("%d ",p[i][j]);
}
// printf("\n");
}
for (i = 0; i < 24; i++) {
x1 = p[i][0];
y1 = p[i][1];
z1 = p[i][2];
printf("%2d,%2d,%2d\n",x1,y1,z1);
}
return 0;
}