Your IP : 216.73.216.40


Current Path : /var/www/html/venkat/check3/file/cg2013/pawan/
Upload File :
Current File : /var/www/html/venkat/check3/file/cg2013/pawan/iit2013093_gvc.cpp

#include <iostream>
#include<cmath>
/*
#include <GL/glut.h>
#include <cmath>
#include<GL/gl.h>
#include<GL/glu.h>
#include<GL/glut.h>
*/
#define Np 1000
using namespace std;
double solutionf[3][3];
int n = 4;
double design[1000][4];
double cordinate_s[20][4];
double cordinate_e[20][4];
double cordinate2_s[20][4];
double cordinate2_e[20][4];

double design1[1000][4];
double cordinate_s1[20][4];
double cordinate_e1[20][4];
double cordinate2_s1[20][4];
double cordinate2_e1[20][4];

void make_answer(double solutionf[4], double storage[][4], double p[4]){
	int asdf;
	for(int i = 0; i < 4; i++){
		double a = 0.0;
		for(int j = 0; j < 4; j++){
			a += (storage[i][j]*p[j]);
		}
		solutionf[i] = a;
	}
}
/*void make_answer2(){
        glClearColor(0, 0, 0, 0);
        glClear(GL_COLOR_BUFFER_BIT);
        glColor3f(1, 1, 1);
        glPointSize(1.0f);
        glBegin(GL_POINTS);
        int i;
	for(int j = 0; j < n; j++){
		double x1, x2, x3, y3, y2, y1, dx, dy;
		x1 = design[j][0];
		x2 = design[(j+1)%n][0];
		y1 = design[j][1];
		y2 = design[(j+1)%n][1];
        	double c1 = x1;
        	double c2 = y1;

             dx = (x2-x1)/Np;
       		 dy = (y2-y1)/Np;

       		 for (i = 0; i < Np; i++) {
              		  glVertex2f(c1, c2);
               		 c1 += dx;
              		  c2 += dy;
       		 }
	}

	for(int j = 0; j < 5; j++){
		double x1, x2, x3, y3, y2, y1, dx, dy;
		x1 = cordinate_s[j][0];
		x2 = cordinate_e[j][0];
		y1 = cordinate_s[j][1];
		y2 = cordinate_e[j][1];
        	double c1 = x1;
        	double c2 = y1;

    	         dx = (x2-x1)/Np;
       		 dy = (y2-y1)/Np;

       		 for (i = 0; i < Np; i++) {
              		  glVertex2f(c1, c2);
               		 c1 += dx;
              		  c2 += dy;
       		 }
	}
	for(i = 0; i < 5; i++){
		cordinate_s[i][0] = -cordinate_s[i][0];
		cordinate_e[i][0] = -cordinate_e[i][0];

	}
	for(int j = 0; j < 5; j++){
		double x1, x2, x3, y3, y2, y1, dx, dy;
		x1 = cordinate_s[j][0];
		x2 = cordinate_e[j][0];
		y1 = cordinate_s[j][1];
		y2 = cordinate_e[j][1];
        	double c1 = x1;
        	double c2 = y1;

    	         dx = (x2-x1)/Np;
       		 dy = (y2-y1)/Np;

       		 for (i = 0; i < Np; i++) {
              		  glVertex2f(c1, c2);
               		 c1 += dx;
                     c2 += dy;
       		 }
	}

	glEnd();
        glFlush();
}
void init(){
	glOrtho(-20, 20, -20, 20, -20, 20);
    //glOrtho(-800, 800, -800, 800, -800, 800);
}*/
int main (){

	design[0][0] = -100, design[0][1] = 700, design[0][2] = 0, design[0][3] = 1;;
	design[1][0] = -100, design[1][1] = 500, design[1][2] = 0, design[1][3] = 1;
	design[2][0] = 100, design[2][1] = 500, design[2][2] = 0, design[2][3] = 1;
	design[3][0] = 100, design[3][1] = 700, design[3][2] = 0, design[3][3] = 1;

    cordinate_s[5][0] =50  , cordinate_s[5][1] = 0;
	cordinate_e[5][0] = 50 , cordinate_e[5][1] = 500;

	cordinate_s[6][0] =150  , cordinate_s[6][1] = 0;
	cordinate_e[6][0] = 500 , cordinate_e[6][1] = 400;

	cordinate_s[7][0] =500  , cordinate_s[7][1] = 400;
	cordinate_e[7][0] = 100 , cordinate_e[7][1] = 700;

	cordinate_s[8][0] =50  , cordinate_s[8][1] = 0;
	cordinate_e[8][0] = 400 , cordinate_e[8][1] = 400;

	cordinate_s[9][0] =400  , cordinate_s[9][1] = 400;
	cordinate_e[9][0] = 100 , cordinate_e[9][1] = 600;

	cordinate_s[0][0] =-50  , cordinate_s[0][1] = 0;
	cordinate_e[0][0] = -50 , cordinate_e[0][1] = 500;

	cordinate_s[1][0] =-150  , cordinate_s[1][1] = 0;
	cordinate_e[1][0] = -500 , cordinate_e[1][1] = 400;

	cordinate_s[2][0] =-500  , cordinate_s[2][1] = 400;
	cordinate_e[2][0] = -100 , cordinate_e[2][1] = 700;

	cordinate_s[3][0] =-50  , cordinate_s[3][1] = 0;
	cordinate_e[3][0] = -400 , cordinate_e[3][1] = 400;

	cordinate_s[4][0] =-400  , cordinate_s[4][1] = 400;
	cordinate_e[4][0] = -100 , cordinate_e[4][1] = 600;
	for(int i = 0; i < 10; i++){
		cordinate_s[i][2] = 0;
		cordinate_e[i][2] = 0;
		cordinate_s[i][3] = 1;
		cordinate_e[i][3] = 1;

	}
	double convert_dir[4][4];
	double divert[4][4];
	for(int i = 0; i < 4; i++){
		for(int j = 0; j < 4; j++){
			if(i == j){
				convert_dir[i][j] = 1;
				divert[i][j] = 1;
			}else{
				convert_dir[i][j] = 0;
				divert[i][j] = 0;
			}
		}
	}
	double ang = -1.0*(asin(1)-atan(.1));
	convert_dir[1][1] = cos(ang);
	convert_dir[1][2] = -sin(ang);
	convert_dir[2][1] = sin(ang);
	convert_dir[2][2] = cos(ang);

	make_answer(design1[0], convert_dir, design[0]);
	make_answer(design1[1], convert_dir, design[1]);
	make_answer(design1[2], convert_dir, design[2]);
	make_answer(design1[3], convert_dir, design[3]);
	for(int i = 0; i < 10; i++){
		make_answer(cordinate_s1[i], convert_dir, cordinate_s[i]);
		make_answer(cordinate_e1[i], convert_dir, cordinate_e[i]);
	}
	/*for(int i = 0; i <= 3; i++){
        for(int j = 0; j <=3; j++){
            cout << design1[i][j] << " ";
        }
        cout << endl;
	}
	for(int i = 0; i < 5; i++){
        for(int j = 0; j <= 3; j++){
            cout << cordinate_s1[i][j] << " ";
        }
        cout << endl;
        for(int j = 0; j <= 3; j++){
            cout << cordinate_e1[i][j] << " ";
        }
        cout << endl;
	}
	cout << endl; */
 	double t = sqrt(10100.0);
	divert[2][3] = t;
	make_answer(design[0], divert, design1[0]);
	make_answer(design[1], divert, design1[1]);
	make_answer(design[2], divert, design1[2]);
	make_answer(design[3], divert, design1[3]);
	for(int i = 0; i < 10; i++){
		make_answer(cordinate_s[i], divert, cordinate_s1[i]);
		make_answer(cordinate_e[i], divert, cordinate_e1[i]);
	}
   /* for(int i = 0; i <= 3; i++){
        for(int j = 0; j <=3; j++){
            cout << design[i][j] << " ";
        }
        cout << endl;
	}
		for(int i = 0; i < 5; i++){
        for(int j = 0; j <= 3; j++){
            cout << cordinate_s[i][j] << " ";
        }
        cout << endl;
        for(int j = 0; j <= 3; j++){
            cout << cordinate_e[i][j] << " ";
        }
        cout << endl;
	}
	cout << endl; */
	for(int i = 0; i < 10; i++){
        for(int j = 0; j <= 2; j++){
            cordinate_s[i][j] = (cordinate_s[i][j]*10.0)/cordinate_s[i][2];
            cordinate_e[i][j] = (cordinate_e[i][j]*10.0)/cordinate_e[i][2];
        }
	}

	for(int i = 0; i <= 3; i++){
        for(int j = 0; j <=2; j++){
            design[i][j] = (design[i][j]*10.0)/design[i][2];
        }
	}
	for(int i = 0; i <= 3; i++){
        cout << int(design[i][0]+.5) << " "<< int(design[i][1]+.5) << " "<<int(design[i][2]+.5);
        cout << endl;
	}
		for(int i = 0; i < 10; i++){
            cout << int(cordinate_s[i][0]+.5) << " "<<int(cordinate_s[i][1]+.5) << " " <<int(cordinate_s[i][2]+.5);
            cout << endl;
            cout << int(cordinate_e[i][0]+.5) << " "<<int(cordinate_e[i][1]+.5) << " "<<int(cordinate_e[i][2]+.5);
            cout << endl;
	}
	/*glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_SINGLE);
        glutInitWindowSize(500, 500);
        glutInitWindowPosition(50, 50);
        glutCreateWindow("IRM2013010");
        init();
        glutDisplaymake_answer(make_answer2);
        glutMainLoop();
*/

	return 0;
}