Click to See Complete Forum and Search --> : Drawing a Circle in OpenGL


DiRNiS
August 30th, 2009, 01:40 AM
Hi all, I am trying to draw a simple circle using OpenGL and C++

I am just getting started coding OpenGL.

I got the following code to draw the circle:


void drawCircle(float cx, float cy, float r, int num_segments)
{
glBegin(GL_LINE_LOOP);
for(int ii = 0; ii < num_segments; ii++)
{
float theta = 2.0f * 3.1415926f * float(ii) / float(num_segments);//get the current angle

float x = r * cosf(theta);//calculate the x component
float y = r * sinf(theta);//calculate the y component

glVertex2f(x + cx, y + cy);//output vertex

}
glEnd();
}


Now in a separate function I am trying to call the drawCircle functions as follows in order to get the circle to appear:

glColor3f(0.0,0.0,0.0);
drawCircle(0,0,10,50);

However, I see no circle. Could somebody point me in the right direction of what I am doing wrong? Thanks!

Lindley
September 2nd, 2009, 02:30 PM
The code you've posted is fine if you're looking to draw a black circle of radius 10 with the origin at 0,0.

Potential issues include:
-What color is the background? Have you cleared the color buffer to this color?
-Do you have a depth buffer? If so, is it cleared or is depth testing disabled?
-Do you have a double-buffered context? If so, have you swapped the buffers after drawing?
-Do you have a context *at all*? Try printing out the result of glGetString(GL_EXTENSIONS) to see. If something comes out, you do.
-Are you able to clear the window to various colors and observe the results?
-Is your modelview matrix set up properly (normally the identity)?
-Is your projection matrix set up properly (for this, normally orthographic)?