| Current Path : /var/www/html/venkat/check3/file/cg2013/pawan/ |
| 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;
}