OpenGL ライブラリを使用して、それぞれ異なる色のセクターを持つリングを描画したいと考えています。使用できることがわかっているリングを描画するにはgluDisk(gluNewQuadric(), 0, 1.5, 32, 100);
GL_TRIANGLE_FAN
しかし、セクターまたはゾーンを異なる色で描画するには、手動の方法または同様のものを使用する必要があると思います。
そのように試してみますが、出力はリングに対してそれほど正確ではありません。
const float DEG2RAD = 3.14159/180;
glBegin( GL_TRIANGLE_FAN );
for( int i = 0; i <= 90; i++ )
{
float degInRad = i*DEG2RAD;
glVertex2f(x, y); // point of the inner circle of the ring
for( int n = 0; n <= 4; n++ )
{
float const t = = i*DEG2RAD*(n/4);
glVertex2f(x + sin(t)*r, y + cos(t)*r); // points of the outer circle.
}
}
glEnd();
アイデアは、この仕組みの図に従ってGL_TRIANGLE_FAN
おり、内側の円で計算された各ポイントに対して外側の円で 4 つのポイントを取得します。外側の円が内側の円より長いからです。これが、別のループへのループの理由です。