| Current Path : /var/www/html/venkat/check3/file/cg2013/pawan/ |
| Current File : /var/www/html/venkat/check3/file/cg2013/pawan/IIT2013124_1.cpp |
#include <iostream>
#include <cmath>
using namespace std;
void swap(int* a, int* b)
{
int t = *a;
*a = *b;
*b = t;
}
int partition (int arr[], int l, int h)
{
int x = arr[h];
int i = (l - 1);
for (int j = l; j <= h- 1; j++) {
if (arr[j] <= x)
{
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[h]);
return (i + 1);
}
void quickSort(int arr[], int l, int h)
{
if (l < h)
{
int p = partition(arr, l, h);
quickSort(arr, l, p - 1);
quickSort(arr, p + 1, h);
}
}
void perspective_function (double x[], double y[]) {
double d, zvp, prpx, prpy, prpz;
d = 10;
prpx = 0;
prpy = -100;
prpz = 10 ;
zvp = 0;
double a = (prpz-zvp) / (prpz - 0);
double b = (zvp - 0) / (prpz - 0);
double ang = atan(0.1);
ang = 90 - ang;
ang = ang * (22 / 7) / 180;
double xx[24], yy[24];
int i = 0;
while (i < 24) {
cout << i + 1 << ". ";
xx[i] = x[i] * cos(ang) - y[i] * sin(ang);
yy[i] = x[i] * sin (ang) + y[i] * cos(ang);
cout << "(" << (int)xx[i] << ", " << (int)yy[i] << ")" << endl;
i++;
}
/*glColor3f(0.0, 1.0, 1.0);
glPointSize(5);
glBegin(GL_LINES);
glVertex2f(xx[0],yy[0]);
glVertex2f(xx[1],yy[1]);
glVertex2f(xx[1],yy[1]);
glVertex2f(xx[2],yy[2]);
glVertex2f(xx[2],yy[2]);
glVertex2f(xx[3],yy[3]);
glVertex2f(xx[3],yy[3]);
glVertex2f(xx[0],yy[0]);
for (int i = 4; i < 24; i += 2) {
glVertex2f(xx[i],yy[i]);
glVertex2f(xx[i+1],yy[i+1]);
}
glEnd();*/
}
void display() {
double x[24], y[24];
x[0] = -100;
y[0] = 700;
x[1] = -100;
y[1] = 500;
x[2] = 100;
y[2] = 500;
x[3] = 100;
y[3] = 700;
x[4] = -50;
y[4] = 0;
x[5] = -50;
y[5] = 500;
x[6] = -150;
y[6] = 0;
x[7] = -500;
y[7] = 400;
x[8] = -500;
y[8] = 400;
x[9] = -100;
y[9] = 700;
x[10] = -50;
y[10] = 0;
x[11] = -400;
y[11] = 400;
x[12] = -400;
y[12] = 400;
x[13] = -100;
y[13] = 600;
x[14] = 50;
y[14] = 0;
x[15] = 50;
y[15] = 500;
x[16] = 150;
y[16] = 0;
x[17] = 500;
y[17] = 400;
x[18] = 500;
y[18] = 400;
x[19] = 100;
y[19] = 700;
x[20] = 50;
y[20] = 0;
x[21] = 400;
y[21] = 400;
x[22] = 400;
y[22] = 400;
x[23] = 100;
y[23] = 600;
/*glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex2f(x[0],y[0]);
glVertex2f(x[1],y[1]);
glVertex2f(x[1],y[1]);
glVertex2f(x[2],y[2]);
glVertex2f(x[2],y[2]);
glVertex2f(x[3],y[3]);
glVertex2f(x[3],y[3]);
glVertex2f(x[0],y[0]);
for (int i = 4; i < 23; i += 2) {
glVertex2f(x[i],y[i]);
glVertex2f(x[i+1],y[i+1]);
}
glEnd();*/
perspective_function(x, y);
//glFlush();
}
int main(int argc,char *argv[]) {
cout << "The final points to be plotted are : " << endl;
display();
return 0;
}