Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calculate vertices of a circle

I am having a simple program, it draws a circle :/ This works fine...

for (k = 1; k < n+1+1; k++){
 vertices[k].color = GU_COLOR( 0.0f, 0.0f, 1.0f, 0.0f );
 vertices[k].x = cos_d( 360 - ((k-1) * dstep) );
 vertices[k].y = sin_d( 360 - ((k-1) * dstep) );
 vertices[k].z = 0.0f;
}
...
//Now draw it
sceGumDrawArray(GU_TRIANGLE_FAN, GU_COLOR_8888|GU_VERTEX_32BITF|GU_TRANSFORM_3D, n+1+1, 0, vertices);

But this doesn't:

for (k = 1; k < n+1+1; k++){
 vertices[k].color = GU_COLOR( 0.0f, 0.0f, 1.0f, 0.0f );
 vertices[k].x = cos_d( ((k-1) * dstep) );
 vertices[k].y = sin_d( ((k-1) * dstep) );
 vertices[k].z = 0.0f;
}

But shouldn't this be the same - just with difference that the first loop calculates the vertices clockwise and the second anti-clockwise? It's just awkward that it just doesn't draw the vertices using the second example...

Or am I stupid?

like image 950
jex Avatar asked Feb 27 '23 13:02

jex


1 Answers

It may not be drawn because of back-face culling.

"If the user has specified that front-facing polygons have a clockwise winding, if the polygon projected on the screen has a counter-clockwise winding it has been rotated to face away from the camera and will not be drawn."

like image 175
Tom Sirgedas Avatar answered Mar 08 '23 11:03

Tom Sirgedas