| Current Path : /var/www/html/venkat/check3/file/cg2013/pawan/ |
| Current File : /var/www/html/venkat/check3/file/cg2013/pawan/IIT2013143_amrita.cpp |
#include <bits/stdc++.h>
#include <algorithm>
#include <vector>
#define PR 10000
//#define MA 10000
#define p make_pair
#define pb push_back
using namespace std;
vector<pair<int, int> > v, v1,amr;
typedef struct
{
float x;
float y;
float z;
} Point;
Point pre[100], perP[100];
//Point prp;
int number;
double zz;
Point prp;
void perProFormula(Point pre, Point prp, Point &perKT, double ScrCuttingAxsZ);
void showPoint(Point DispVal);
/*void lineSegment (void)
glVertex2i(100, 700);
glVertex2i(-100, 700);
glVertex2i(-100, 700);
glVertex2i(-100, 500);
glVertex2i(-100, 500);
glVertex2i(100, 500);
glVertex2i(100, 500);
glVertex2i(100, 700);
glVertex2i(50, 0);
glVertex2i(50, 500);
glVertex2i(150, 0);
glVertex2i(500, 400);
glVertex2i(500, 400);
glVertex2i(100, 700);
glVertex2i(50, 0);
glVertex2i(400, 400);
glVertex2i(400, 400);
glVertex2i(100, 600);
for (int k = 0; k < 24; k++) {
glVertex2i(aa[k].first, aa[k].second);
*/
int main ()
{
for(int t=0;t<24;t++)
int x1,y1,z1;
for(int t=0;t<24;t++)
int x2,y2,z2;
number = 24;
for(int t=0;t<24;t++)
int x3,y3;
for(int t=0;t<24;t++)
int x0,y0;
v.pb(p(-100, 700));
v.pb(p(100, 700));
v.pb(p(100, 700));
v.pb(p(100, 500));
v.pb(p(100, 500));
v.pb(p(-100, 500));
v.pb(p(-100, 500));
v.pb(p(-100, 700));
v.pb(p(-50, 0));
v.pb(p(-50, 500));
v.pb(p(-150, 0));
v.pb(p(-500, 400));
v.pb(p(-500, 400));
v.pb(p(-100, 700));
v.pb(p(-50, 0));
v.pb(p(-400, 400));
v.pb(p(-400, 400));
v.pb(p(-100, 600));
v.pb(p(100, 700));
v.pb(p(-100, 700));
v.pb(p(-100, 700));
v.pb(p(-100, 500));
v.pb(p(-100, 500));
v.pb(p(100, 500));
v.pb(p(100, 500));
v.pb(p(100, 700));
v.pb(p(50, 0));
v.pb(p(50, 500));
v.pb(p(150, 0));
v.pb(p(500, 400));
v.pb(p(500, 400));
v.pb(p(100, 700));
v.pb(p(50, 0));
v.pb(p(400, 400));
v.pb(p(400, 600));
v.pb(p(100, 600));
prp.x = 0;
prp.y = -100;
prp.z = 10;
zz = 0;
for(int i = 0; i < 24; i++) {
perP[i].z = 0;
}
for (int i = 0; i < number; i++) {
pre[i].x = v[i].first;
pre[i].y = v[i].second;
pre[i].z = 0;
perProFormula(pre[i], prp, perP[i], zz);
}
return 0;
}
/*void draw_point()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
glPointSize(1.0f);
glBegin(GL_POINTS);
int samples = 100;
for (int i = 0; i < n; i++) {
float dx = (p[(i + 1) % n].x - p[i].x) / (float)samples;
float dy = (p[(i + 1) % n].y - p[i].y) / (float)samples;
float dz = (p[(i + 1) % n].z - p[i].z) / (float)samples;
for (int j = 0; j < samples; j++) {
glVertex3f((p[i].x + j * dx) / 100, (p[i].y + j * dy) / 100, (p[i].z + j * dz) / 100);
}
}
for (int i = 0; i < n; i++) {
float dx = (perP[(i + 1) % n].x - perP[i].x) / (float)samples;
float dy = (perP[(i + 1) % n].y - perP[i].y) / (float)samples;
for (int j = 0; j < samples; j++) {
glVertex2f((perP[i].x + j * dx) / 100, (perP[i].y + j * dy) / 100);
}
}
glEnd();
glFlush();
}
*/
void perProFormula(Point pre, Point prp, Point &perP, double zz)
{
for(int t=0;t<PR;t++) {
//kvf
//print
}
double a = (prp.z - zz) / (prp.z - pre.z);
double b = (zz - pre.z) / (prp.z - pre.z);
perP.x = pre.x * a + prp.x * b;
perP.y = pre.y * a + prp.y * b;
showPoint(perP);
}
void showPoint(Point pre)
{
cout << pre.x << "," << pre.y << "," << 10 << endl;
amr.pb(p(pre.x,-pre.y));
}