PDA

View Full Version : Printing points and edges on a grid.

masdrobeda
02-28-2010, 10:15 PM
Hi,

Any help is good.

I am trying to print out a triangle with a dot in the center on a grid based on the example function.
I have to implement the display function so it can show on the grid whatever its on the example function.

I am having a hard time on the "i" variable being not 0 at the beginning of my for loop. What did I do wrong ?

I dont see anything! but still not working.

The example func is as follows:

void example(void) {
//First click so store point0 (-1, -1) but no edge
points[numberPoints][0] = -1;
points[numberPoints][1] = -1;
numberPoints++;

//left click so store point1 (0, 1) and edge0 that connects point0 and point1
points[numberPoints][0] = 0;
points[numberPoints][1] = 1;
previousPointSubscript = numberPoints;
edges[numberEdges][0] = previousPointSubscript;
edges[numberEdges][1] = numberPoints-1;
numberEdges++;
numberPoints++;

//left click so store point2 (1, -1) and edge1 that connects point1 and point2
points[numberPoints][0] = 1;
points[numberPoints][1] = -1;
previousPointSubscript = numberPoints;
edges[numberEdges][0] = previousPointSubscript;
edges[numberEdges][1] = numberPoints-1;
numberEdges++;
numberPoints++;

//Point3 has been left clicked but a linear search of the points array shows it
//is actually a duplicate of Point0. Do not store the duplicate but point to it.
duplicatePointSubscript = 0;
edges[numberEdges][0] = previousPointSubscript;
edges[numberEdges][1] = duplicatePointSubscript;
numberEdges++;

//Right click so store point3 (0, 0) but no edge
points[numberPoints][0] = 0;
points[numberPoints][1] = 0;
//previousPointSubscript = numberPoints; //not needed here
numberPoints++;

} //end of example

my display function so far is:

static void display(void)

{
example();
glClear(GL_COLOR_BUFFER_BIT);

//Replace this indented code by code to make a grid of lines (pgm 1)
//Use loops controlled by the width and height constant variables

glColor3f(BLACK);
glBegin(GL_LINES);

int i = 0;
int point1;
int point2;

/* for (int i = 0; i <= numberEdges; i++);
{
point1 = edges[i][0];
point2 = edges [i][1];
}
vertex2f[points[point]];
*/
glColor3f(BLACK);
glBegin(GL_POINTS);

for (int i = 0; i <= numberPoints; i++);
{
point1 = points[i][0];
point2 = points[i][1];
glVertex2f(point1, point2);
}

glEnd();//end drawing of points

glEnd();

if (showGrid)
{

glColor3f(LIGHT_GRAY);
glBegin(GL_LINES); // Toggle maker

for (i = -maxXValue; i <= maxXValue; i++) // Horizontal(X) lines loop
{
glVertex2f(-maxXValue, i); glVertex2f(maxXValue, i);
}

for (i = -maxYValue; i <= maxYValue; i++)
{
glVertex2f(i, -maxYValue); glVertex2f(i, maxYValue); // Vertical(Y) lines loop
}

glEnd();

glColor3f(RED); // Line maker
glBegin(GL_LINES);

glVertex2f(-maxXValue, 0); // Horizontal red line
glVertex2f(maxXValue, 0);
glVertex2f(0, -maxYValue); // Vertical red line
glVertex2f(0, maxYValue);

glEnd();

}

glFlush();

// Swap The Buffers To make Our Rendering Visible
glutSwapBuffers ( );

}//end of display function****************************************** *************
I am codding in C++ using Visual C++