计算圆的顶点

jex*_*jex 4 c++ geometry pspsdk playstation-portable

我有一个简单的程序,它绘制了一个圆圈:/这很好......

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);
Run Code Online (Sandbox Code Playgroud)

但这不是:

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;
}
Run Code Online (Sandbox Code Playgroud)

但是这不应该是相同的 - 只是区别在于第一个循环顺时针计算顶点而第二个逆时针计算顶点?它只是尴尬,它只是不使用第二个例子绘制顶点...

或者我是傻瓜?

Tom*_*das 6

由于背面剔除,可能无法绘制.

"如果用户指定前置多边形具有顺时针缠绕,如果投影在屏幕上的多边形具有逆时针缠绕,则它已被旋转以面向远离相机并且不会被绘制."