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/iit2013146.cpp

#include <bits/stdc++.h>
//#include <GL/freeglut.h>
//#include <GL/gl.h>
//#include <GL/glu.h>
//#include <GL/glut.h>

using namespace std;


void draw_line(double  xa, double ya, double xb, double yb)
{
	double dx1,dy1;
	double x, y;
	double dx, dy;
	int i;

	dx = xb-xa;
	dy = yb-ya;
	x = xa;
	y = ya;
	dx1 = dx / 10000.0;
	dy1 = dy / 10000.0;

	//cout << xa << " " << ya << " " <<  endl;
	for (i = 0; i < 10000; i++) {
		x = x +  dx1;
		y  = y + dy1;
	//	glVertex3f(x, y, 0.1);
	}
}

double m1, m2;
double n1, n2;
double o1, o2;
double p1, p2;

void modify(double xa, double ya, double xb, double yb)
{
	double za, zb;
	double p = 0.1;
	double x1, y1, z1, x2, y2, z2, th;
	th =  3.14 / 2 - atan(p) ;
//	theta = -theta;
	
	x2 = xb;
	y2 = yb * cos(th);
	z2 = yb * sin(th);

	x1 = xa;
	y1 = ya * cos(th);
	z1 = ya * sin(th);

	za = z1 + sqrt(1.0100);
	zb = z2 + sqrt(1.0100);

	xa = (xa / za) * 10;
	ya = (y1 / za) * 10;

	xb = (xb / zb) * 10;
	yb = (y2 / zb) * 10;

	cout << xa << " " << ya  << endl;
	draw_line(xa, ya, xb, yb );
}

void func() {
	
	modify(m1, m2, n1, n2);
	modify(n1, n2, o1, o2);
	modify(o1, o2, p1, p2);
	modify(p1, p2, m1, m2);

	modify(-0.050, 0.0, -0.050,0.500);

	modify(-0.150,0.0, -0.500,0.400);

	modify(-0.500,0.400, -0.100,0.700);

	modify(-0.050, 0.0, -0.400,0.400);

	modify(-0.400, 0.400 ,-0.100,0.600);

	modify(0.050, 0.0, 0.050,0.500);

        modify(0.150,0.0, 0.500,0.400);

        modify(0.500,0.400, 0.100,0.700);

        modify(0.050, 0.0, 0.400,0.400);

        modify(0.400, 0.400 ,0.100,0.600);

}

struct Queue
{
    int front, rear, size;
    unsigned capacity;
    int* array;
};
 
struct Queue* createQueue(unsigned capacity)
{
    struct Queue* queue = (struct Queue*) malloc(sizeof(struct Queue));
    queue->capacity = capacity;
    queue->front = queue->size = 0; 
    queue->rear = capacity - 1;  
    queue->array = (int*) malloc(queue->capacity * sizeof(int));
    return queue;
}
 

int isFull(struct Queue* queue)
{  return (queue->size == queue->capacity);  }
 
int isEmpty(struct Queue* queue)
{  return (queue->size == 0); }
 
void enqueue(struct Queue* queue, int item)
{
    if (isFull(queue))
        return;
    queue->rear = (queue->rear + 1)%queue->capacity;
    queue->array[queue->rear] = item;
    queue->size = queue->size + 1;
    printf("%d enqueued to queue\n", item);
}
 
int dequeue(struct Queue* queue)
{
    if (isEmpty(queue))
        return INT_MIN;
    int item = queue->array[queue->front];
    queue->front = (queue->front + 1)%queue->capacity;
    queue->size = queue->size - 1;
    return item;
}
 
int front(struct Queue* queue)
{
    if (isEmpty(queue))
        return INT_MIN;
    return queue->array[queue->front];
}
 
int rear(struct Queue* queue)
{
    if (isEmpty(queue))
        return INT_MIN;
    return queue->array[queue->rear];
}
 


int main(int argc, char ** argv)
{
	m1 =  -0.100; m2 = 0.700;
	n1 = -0.100; n2 =0.500;
	o1 = 0.100; o2 = 0.700;
	p1 = 0.100; p2 =0.500;
	
	func();

	return 0;
}