Retourner au contenu associé (entrée de forum : une sphère en opengl ...)
Posté par @ le 29 septembre 2004 à 19:45. En réponse au message une sphère en opengl .... Évalué à 3.
void Sphere(int a,int b) { float da = ( M_PI / a ); float db = ( 2.0f * M_PI / b ); glBegin(GL_QUADS); glColor3f(1.0,0.0,0.0); glNormal3f(0,0,1); for( int i = 0; i < a + 1 ; i++ ) { float r0 = sin ( i * da ); float y0 = cos ( i * da ); float r1 = sin ( (i+1) * da ); float y1 = cos ( (i+1) * da ); for( int j = 0; j < b + 1 ; j++ ) { float x0 = r0 * sin( j * db ); float z0 = r0 * cos( j * db ); float x1 = r0 * sin( (j+1) * db ); float z1 = r0 * cos( (j+1) * db ); float x2 = r1 * sin( j * db ); float z2 = r1 * cos( j * db ); float x3 = r1 * sin( (j+1) * db ); float z3 = r1 * cos( (j+1) * db ); glColor3f((x0+x1+x2+x3)/4.0,(y0+y1)/2.0,(z0+z1+z2+z3)/4.0); glVertex3f(x0,y0,z0); glVertex3f(x1,y0,z1); glVertex3f(x3,y1,z3); glVertex3f(x2,y1,z2); } } glEnd(); }
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# la soluce avec des gl_quads
Posté par @ . En réponse au message une sphère en opengl .... Évalué à 3.
void Sphere(int a,int b) { float da = ( M_PI / a ); float db = ( 2.0f * M_PI / b ); glBegin(GL_QUADS); glColor3f(1.0,0.0,0.0); glNormal3f(0,0,1); for( int i = 0; i < a + 1 ; i++ ) { float r0 = sin ( i * da ); float y0 = cos ( i * da ); float r1 = sin ( (i+1) * da ); float y1 = cos ( (i+1) * da ); for( int j = 0; j < b + 1 ; j++ ) { float x0 = r0 * sin( j * db ); float z0 = r0 * cos( j * db ); float x1 = r0 * sin( (j+1) * db ); float z1 = r0 * cos( (j+1) * db ); float x2 = r1 * sin( j * db ); float z2 = r1 * cos( j * db ); float x3 = r1 * sin( (j+1) * db ); float z3 = r1 * cos( (j+1) * db ); glColor3f((x0+x1+x2+x3)/4.0,(y0+y1)/2.0,(z0+z1+z2+z3)/4.0); glVertex3f(x0,y0,z0); glVertex3f(x1,y0,z1); glVertex3f(x3,y1,z3); glVertex3f(x2,y1,z2); } } glEnd(); }