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/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();*/
}