hi. I am new to openGL and would like to draw a smooth circle…

Can anyone hint me ?

Should I use gl.glBegin(GL.GL_LINE_STRIP) and some sine, cosin in it??

thanks

hi. I am new to openGL and would like to draw a smooth circle…

Can anyone hint me ?

Should I use gl.glBegin(GL.GL_LINE_STRIP) and some sine, cosin in it??

thanks

Something like this…

```
const float DEG2RAD = 3.14159/180;
void drawCircle(float radius)
{
glBegin(GL_LINE_LOOP);
for (int i=0; i < 360; i++)
{
float degInRad = i*DEG2RAD;
glVertex2f(cos(degInRad)*radius,sin(degInRad)*radius);
}
glEnd();
}
```

Do remember that Google is your friend… You could have found this with less typing and got a quicker answer with a Google search.

Other solution can be to fake a circle by using gluDisk() and set parameters accordingly. i.e set inner radius equal to outer radius.

Another method can be to go for subdivision curves , midpoint , catmull clark if you want to go for higher precision.

Or you can draw it using NURBS.

You can not get a perfect circle though.

And if you want it to be really really smooth, check out GL_LINE_SMOOTH (hint: enable blending).

thank you very much .

I have done it.

```
gl.glBegin(GL.GL_LINE_LOOP);
for(int i =0; i <= 300; i++){
double angle = 2 * Math.PI * i / 300;
double x = Math.cos(angle);
double y = Math.sin(angle);
gl.glVertex2d(x,y);
}
gl.glEnd();
```

Check out this site: http://slabode.exofire.net/circle_draw.shtml

The code there draws circles and arcs without using sine or cosine and is very fast.