Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 611
  • Last Modified:

OpenGL Help with drawLine Function

Hello Everyone,

I am writing a program in which I must implement the mid-point line algorithm to draw a line.  I have the algorithm working but I am unable to figure out why the line is not displaying to the screen.  BTW I can only use glVertex to plot each pixel. Below is the drawLine function.
void drawLine(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
{
	GLfloat pk;
	GLfloat pk1;
	GLfloat color = 1.23234;
	Point2D vertex;
	Point2D slope;
	slope.x = x2 - x1;
	slope.y = y2 - y1;

	pk = ((2*slope.y) - slope.x);

	vertex.x = x1;
	vertex.y = y1;

	glColor3f(5.0f, 3.0f, 2.0f);

	for(; vertex.x <= x2; vertex.x++)
	{
		if(pk < 0 )
		{
			//vertex.x++;
			glBegin(GL_POINTS);
			glVertex2f(vertex.x, vertex.y);
			glEnd();
			vertex.round();
			//mySetPixel(vertex.x, vertex.y, &color);
			pk1 = pk + 2 * (slope.y);
			pk = pk1;
		}
		else
		{
			//vertex.x++;
			vertex.y++;
			glBegin(GL_POINTS);
			glVertex2f(vertex.x, vertex.y);
			glEnd();
			pk1 = pk + 2 * (slope.y) - 2 * (slope.x);
			pk = pk1;
		}
	}

Open in new window

0
brich744
Asked:
brich744
2 Solutions
 
George TokasCommented:
Why don't you use the line functions?
glBegin(GL_LINES);
glVertex3f(vertex1.x, vertex1.y,vertex1.z);
glVertex3f(vertex2.x, vertex2.y,vertex2.z);
glEnd();
The certex declaration will be for 3 dimentions where z = 0.
Change the width of the line with: glLineWidth() and don't forget for antialiasing the GL_LINE_SMOOTH parameter.

George Tokas.

0
 
HappyCactusCommented:
What is the GL_POINT_SIZE query result? what about setting the glpointsize() value?
Are the gl context correctly setup? try to draw a simple triangle, does it display correctly? if not, maybe your problem is not how the line is drawn, but how your GL environment is setup.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now