Solved

OpenGL Help with drawLine Function

Posted on 2011-09-28
2
604 Views
Last Modified: 2013-12-06
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
Comment
Question by:brich744
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 16

Accepted Solution

by:
George Tokas earned 250 total points
ID: 36813269
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
 
LVL 12

Assisted Solution

by:HappyCactus
HappyCactus earned 250 total points
ID: 36813743
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

On Demand Webinar: Networking for the Cloud Era

Ready to improve network connectivity? Watch this webinar to learn how SD-WANs and a one-click instant connect tool can boost provisions, deployment, and management of your cloud connection.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What is RenderMan: RenderMan is a not any particular piece of software. RenderMan is an industry standard, defining set of rules that any rendering software should use, to be RenderMan-compliant. Pixar's RenderMan is a flagship implementation of …
Examines three attack vectors, specifically, the different types of malware used in malicious attacks, web application attacks, and finally, network based attacks.  Concludes by examining the means of securing and protecting critical systems and inf…
The goal of this video is to provide viewers with basic examples to understand and use switch statements in the C programming language.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

729 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question