| Current Path : /var/www/html/venkat/check3/file/cg2013/pawan/ |
| Current File : /var/www/html/venkat/check3/file/cg2013/pawan/IIT2013055_1.cpp |
#include <iostream>
//#include <GL/glut.h>
#include <cstdio>
#include <cmath>
using namespace std;
/*void drawPoint(double x, double y)
{
glPointSize(2);
glBegin(GL_POINTS);
glColor3f(1.0f, 0.0f, 0.0f);
double xScaled = x * 0.001;
double yScaled = y * 0.001;
glVertex2f(xScaled, yScaled);
glEnd();
}
void drawPoint(double x, double y, double z)
{
glPointSize(5);
glBegin(GL_POINTS);
glColor3f(1.0f, 0.0f, 0.0f);
double xScaled = x * 0.001;
double yScaled = y * 0.001;
double zScaled = z * 0.01;
glVertex3f(xScaled, yScaled, zScaled);
glEnd();
}*/
/*void dda(double x1, double y1, double x2, double y2)
{
double dx = x2 - x1;
double dy = y2 - y1;
double step;
if (abs(dx) > abs(dy)) {
step = abs(dx);
} else {
step = abs(dy);
}
double incX = dx/step;
double incY = dy/step;
double x = x1;
double y = y1;
for (int i = 0; i < step; i++) {
drawPoint(x, y);
x += incX;
y += incY;
}
}*/
double screenZ = 10/sqrt(101);
double eX = 0, eY = -100, eZ = 10;
struct point {
double x, y, z;
};
point transform(double x, double y, double z)
{
double d = sqrt((x-eX)*(x-eX) + (y-eY)*(y-eY) + (z-eZ)*(z-eZ));
double k = ((screenZ - eZ) * d)/ (z - eZ);
double xf = eX + k/d * (x - eX);
double yf = eY + k/d * (y - eY);
double zf = eZ + k/d * (z - eZ);
point p;
p.x = xf;
p.y = yf;
p.z = zf;
p.x = p.z;
p.z = -p.x;
printf ("%d,%d,%d\n", (int)(xf+0.5), (int)(yf+0.5), (int)(zf+0.5));
//drawPoint(xf, yf, zf);
return p;
}
/*void drawLine(double x0, double y0, double z0, double x1, double y1, double z1)
{
cout << x0 << " " << y0 << " "<< z0 << endl;
cout << x1 << " " << y1 << " "<< z1 << endl;
cout << "--------" << endl;
glPointSize(5);
glBegin(GL_LINES);
glColor3f(1.0f, 0.0f, 0.0f);
double xScaled = x0 * 0.001;
double yScaled = y0 * 0.001;
double zScaled = z0 * 0.01;
glVertex3f(xScaled, yScaled, zScaled);
xScaled = x1 * 0.001;
yScaled = y1 * 0.001;
zScaled = z1 * 0.01;
glVertex3f(xScaled, yScaled, zScaled);
glEnd();
}*/
void draw2()
{
point p1 = transform(-100, 700, 0);
point p2 = transform(-100, 500, 0);
point p4 = transform(100, 700, 0);
point p3 = transform(100, 500, 0);
/*drawLine(p1.x, p1.y, p1.z, p2.x, p2.y, p2.z);
drawLine(p2.x, p2.y, p2.z, p3.x, p3.y, p3.z);
drawLine(p3.x, p3.y, p3.z, p4.x, p4.y, p4.z);
drawLine(p4.x, p4.y, p4.z, p1.x, p1.y, p1.z);*/
point p5 = transform(-50, 0, 0);
point p6 = transform(-50, 500, 0);
point p7 = transform(-150, 0, 0);
point p8 = transform(-500, 400, 0);
point p9 = transform(-500, 400, 0);
point p10 = transform(-100, 700, 0);
point p11 = transform(-50, 0, 0);
point p12 = transform(-400, 400, 0);
point p13 = transform(-400, 400, 0);
point p14 = transform(-100, 600, 0);
/*drawLine(p5.x, p5.y, p5.z, p6.x, p6.y, p6.z);
drawLine(p7.x, p7.y, p7.z, p8.x, p8.y, p8.z);
drawLine(p9.x, p9.y, p9.z, p10.x, p10.y, p10.z);
drawLine(p11.x, p11.y, p11.z, p12.x, p12.y, p12.z);
drawLine(p13.x, p13.y, p13.z, p14.x, p14.y, p14.z);*/
point p15 = transform(50, 0, 0);
point p16 = transform(50, 500, 0);
point p17 = transform(150, 0, 0);
point p18 = transform(500, 400, 0);
point p19 = transform(500, 400, 0);
point p20 = transform(100, 700, 0);
point p21 = transform(50, 0, 0);
point p22 = transform(400, 400, 0);
point p23 = transform(400, 400, 0);
point p24 = transform(100, 600, 0);
/*drawLine(p15.x, p15.y, p15.z, p16.x, p16.y, p16.z);
drawLine(p17.x, p17.y, p17.z, p18.x, p18.y, p18.z);
drawLine(p19.x, p19.y, p19.z, p20.x, p20.y, p20.z);
drawLine(p21.x, p21.y, p21.z, p22.x, p22.y, p22.z);
drawLine(p23.x, p23.y, p23.z, p24.x, p24.y, p24.z);*/
}
/*void draw()
{
glClearColor(1.0, 1.0, 1.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
double m = 0.5;
double c = 15;
dda(-150, 0, -500, 400);
dda(-500, 400, -100, 700);
dda(-50, 0, -400, 400);
dda(-400, 400, -100, 600);
dda(50, 0, 50, 500);
dda(150, 0, 500, 400);
dda(500, 400, 100, 700);
dda(50, 0, 400, 400);
dda(400, 400, 100, 600);
dda(-100, 700, -100, 500);
dda(-100, 500, 100, 500);
dda(100, 500, 100, 700);
dda(100, 700, -100, 700);
draw2();
glFlush();
}*/
int main(int argc, char **argv)
{
draw2();
/*glutInit(&argc, argv);
glutInitWindowPosition(0, 0);
glutInitWindowSize(500, 500);
glutCreateWindow("Test");
glutDisplayFunc(draw);
glutMainLoop();*/
}