📄 def_logo.c
字号:
void def_logo(void){ def_O(); def_P(); def_El(); def_G();}void draw_O(void){ int i,j,k; for (i=0;i<ACC;i++) { k = i+1; if (k>=ACC) k = 0; glBegin(GL_QUAD_STRIP); for (j=0;j<ACC4;j++) { glNormal3f(normal_O[j][k][0], normal_O[j][k][1], normal_O[j][k][2]); glVertex3f(char_O[j][k][0], char_O[j][k][1], char_O[j][k][2]); glNormal3f(normal_O[j][i][0], normal_O[j][i][1], normal_O[j][i][2]); glVertex3f(char_O[j][i][0], char_O[j][i][1], char_O[j][i][2]); } glNormal3f(normal_O[0][k][0], normal_O[0][k][1], normal_O[0][k][2]); glVertex3f(char_O[0][k][0], char_O[0][k][1], char_O[0][k][2]); glNormal3f(normal_O[0][i][0], normal_O[0][i][1], normal_O[0][i][2]); glVertex3f(char_O[0][i][0], char_O[0][i][1], char_O[0][i][2]); glEnd(); }}void draw_P(void){ int i,j,k; for (i=0;i<ACC;i++) { k = i+1; if (k>=ACC) k = 0; glBegin(GL_QUAD_STRIP); for (j=0;j<ACC2;j++) { glNormal3f(normal_P[j][k][0], normal_P[j][k][1], normal_P[j][k][2]); glVertex3f(char_P[j][k][0], char_P[j][k][1], char_P[j][k][2]); glNormal3f(normal_P[j][i][0], normal_P[j][i][1], normal_P[j][i][2]); glVertex3f(char_P[j][i][0], char_P[j][i][1], char_P[j][i][2]); } glNormal3f(normal_P[0][k][0], normal_P[0][k][1], normal_P[0][k][2]); glVertex3f(char_P[0][k][0], char_P[0][k][1], char_P[0][k][2]); glNormal3f(normal_P[0][i][0], normal_P[0][i][1], normal_P[0][i][2]); glVertex3f(char_P[0][i][0], char_P[0][i][1], char_P[0][i][2]); glEnd(); } j = 0; glBegin(GL_QUAD_STRIP); for (i=0;i<ACC;i++) { glNormal3f(normal_P[0][i][0], normal_P[0][i][1], normal_P[0][i][2]); glVertex3f(char_P[0][i][0]-4.3, -1.6, 1.0*char_P[0][i][2]); glVertex3f(char_P[0][i][0]-4.3, 6.0, 1.0*char_P[0][i][2]); } glNormal3f(normal_P[0][0][0], normal_P[0][0][1], normal_P[0][0][2]); glVertex3f(char_P[0][0][0]-4.3, -1.6, 1.0*char_P[0][0][2]); glVertex3f(char_P[0][0][0]-4.3, 6.0, 1.0*char_P[0][0][2]); glEnd();}void draw_E(void){ int i,j,k; for (i=0;i<ACC;i++) { k = i+1; if (k>=ACC) k = 0; glBegin(GL_QUAD_STRIP); glNormal3f(normal_P[0][k][0], normal_P[0][k][1], normal_P[0][k][2]); glVertex3f(char_P[0][k][0], char_P[0][k][1]+0.0, char_P[0][k][2]); glNormal3f(normal_P[0][i][0], normal_P[0][i][1], normal_P[0][i][2]); glVertex3f(char_P[0][i][0], char_P[0][i][1]+0.0, char_P[0][i][2]); for (j=1;j<ACC2;j++) { glNormal3f(normal_P[j][k][0], normal_P[j][k][1], normal_P[j][k][2]); glVertex3f(char_P[j][k][0], char_P[j][k][1], char_P[j][k][2]); glNormal3f(normal_P[j][i][0], normal_P[j][i][1], normal_P[j][i][2]); glVertex3f(char_P[j][i][0], char_P[j][i][1], char_P[j][i][2]); } glNormal3f(normal_P[0][k][0], normal_P[0][k][1], normal_P[0][k][2]); glVertex3f(char_P[0][k][0], char_P[0][k][1]-0.4, char_P[0][k][2]); glNormal3f(normal_P[0][i][0], normal_P[0][i][1], normal_P[0][i][2]); glVertex3f(char_P[0][i][0], char_P[0][i][1]-0.4, char_P[0][i][2]); glEnd(); } glBegin(GL_QUAD_STRIP); j = ACC2*3/4; for (i=0;i<ACC;i++) { glNormal3f(normal_P[j][i][0], normal_P[j][i][1], normal_P[j][i][2]); glVertex3f(-2.0, char_P[j][i][1]+2.55, 1.0*char_P[j][i][2]); glVertex3f(2.0, char_P[j][i][1]+2.55, 1.0*char_P[j][i][2]); } glNormal3f(normal_P[j][0][0], normal_P[j][0][1], normal_P[j][0][2]); glVertex3f(-2.0, char_P[j][0][1]+2.55, 1.0*char_P[j][0][2]); glVertex3f(2.0, char_P[j][0][1]+2.55, 1.0*char_P[j][0][2]); glEnd();}void draw_El(void){ int i,j,k; for (i=0;i<ACC;i++) { k = i+1; if (k>=ACC) k = 0; glBegin(GL_QUAD_STRIP); for (j=0;j<=ACC3;j++) { glNormal3f(normal_El[j][k][0], normal_El[j][k][1], normal_El[j][k][2]); glVertex3f(char_El[j][k][0], char_El[j][k][1], char_El[j][k][2]); glNormal3f(normal_El[j][i][0], normal_El[j][i][1], normal_El[j][i][2]); glVertex3f(char_El[j][i][0], char_El[j][i][1], char_El[j][i][2]); } glEnd(); }}void draw_N(void){ int i,j,k; for (i=0;i<ACC;i++) { k = i+1; if (k>=ACC) k = 0; glBegin(GL_QUAD_STRIP); for (j=0;j<=ACC2/2;j++) { glNormal3f(normal_P[j][k][0], normal_P[j][k][1], normal_P[j][k][2]); glVertex3f(char_P[j][k][0], char_P[j][k][1], char_P[j][k][2]); glNormal3f(normal_P[j][i][0], normal_P[j][i][1], normal_P[j][i][2]); glVertex3f(char_P[j][i][0], char_P[j][i][1], char_P[j][i][2]); } glEnd(); } j = 0; glBegin(GL_QUAD_STRIP); for (i=0;i<ACC;i++) { glNormal3f(normal_P[0][i][0], normal_P[0][i][1], normal_P[0][i][2]); glVertex3f(char_P[0][i][0]-4.3, 0.2, 1.0*char_P[0][i][2]); glVertex3f(char_P[0][i][0]-4.3, 6.0, 1.0*char_P[0][i][2]); } glNormal3f(normal_P[0][0][0], normal_P[0][0][1], normal_P[0][0][2]); glVertex3f(char_P[0][0][0]-4.3, 0.2, 1.0*char_P[0][0][2]); glVertex3f(char_P[0][0][0]-4.3, 6.0, 1.0*char_P[0][0][2]); glEnd(); j = 0; glBegin(GL_QUAD_STRIP); for (i=0;i<ACC;i++) { glNormal3f(normal_P[0][i][0], normal_P[0][i][1], normal_P[0][i][2]); glVertex3f(char_P[0][i][0], 0.2, 1.0*char_P[0][i][2]); glVertex3f(char_P[0][i][0], 3.4, 1.0*char_P[0][i][2]); } glNormal3f(normal_P[0][0][0], normal_P[0][0][1], normal_P[0][0][2]); glVertex3f(char_P[0][0][0], 0.2, 1.0*char_P[0][0][2]); glVertex3f(char_P[0][0][0], 3.4, 1.0*char_P[0][0][2]); glEnd();}void draw_G(void){ int i,j,k; for (i=0;i<ACC;i++) { k = i+1; if (k>=ACC) k = 0; glBegin(GL_QUAD_STRIP); glNormal3f(normal_G[0][k][0], normal_G[0][k][1], normal_G[0][k][2]); glVertex3f(char_G[0][k][0], char_G[0][k][1]+1.2, char_G[0][k][2]); glNormal3f(normal_G[0][i][0], normal_G[0][i][1], normal_G[0][i][2]); glVertex3f(char_G[0][i][0], char_G[0][i][1]+1.2, char_G[0][i][2]); for (j=1;j<ACC4;j++) { glNormal3f(normal_G[j][k][0], normal_G[j][k][1], normal_G[j][k][2]); glVertex3f(char_G[j][k][0], char_G[j][k][1], char_G[j][k][2]); glNormal3f(normal_G[j][i][0], normal_G[j][i][1], normal_G[j][i][2]); glVertex3f(char_G[j][i][0], char_G[j][i][1], char_G[j][i][2]); } glEnd(); } glBegin(GL_QUAD_STRIP); j = ACC4*3/4; for (i=0;i<ACC;i++) { glNormal3f(accSIN[i], 0.0, accCOS[i] ); glVertex3f(4.0+0.9*accSIN[i], 4.0+0.9*accSIN[i], 0.9*accCOS[i] ); glVertex3f(4.0+0.9*accSIN[i], 0.0, 0.9*accCOS[i]); } glNormal3f(accSIN[0], 0.0, accCOS[0] ); glVertex3f(4.0+0.9*accSIN[0], 4.0+0.9*accSIN[0], 0.9*accCOS[0] ); glVertex3f(4.0+0.9*accSIN[0], 0.0, 0.9*accCOS[0]); glEnd(); glBegin(GL_QUAD_STRIP); j = ACC4*3/4; for (i=0;i<ACC;i++) { glNormal3f(0.0, accSIN[i], accCOS[i] ); glVertex3f(4.0-0.9*accSIN[i], 4.0-0.9*accSIN[i], 0.9*accCOS[i] ); glVertex3f(0.0, 4.0-0.9*accSIN[i], 0.9*accCOS[i]); } glNormal3f(0.0, accSIN[0], accCOS[0] ); glVertex3f(4.0-0.9*accSIN[0], 4.0-0.9*accSIN[0], 0.9*accCOS[0] ); glVertex3f(0.0, 4.0-0.9*accSIN[0], 0.9*accCOS[0]); glEnd(); j = ACC4*3/4; glBegin(GL_TRIANGLE_FAN); glNormal3f(-1.0, 0.0, 0.0); glVertex3f(0.0, 4.0, 0.0); for (i=0;i<ACC;i++) glVertex3f(0.0, 4.0+0.9*accSIN[i], 0.9*accCOS[i]); glVertex3f(0.0, 4.0+0.9*accSIN[0], 0.9*accCOS[0]); glEnd();}void draw_L(void){ int i; glBegin(GL_QUAD_STRIP); for (i=0;i<ACC;i++) { glNormal3f(accSIN[i], 0.0, accCOS[i] ); glVertex3f(0.9*accSIN[i], 9.6, 0.9*accCOS[i]); glVertex3f(0.9*accSIN[i], 0.9+0.9*accSIN[i], 0.9*accCOS[i] ); } glNormal3f(accSIN[0], 0.0, accCOS[0] ); glVertex3f(0.9*accSIN[0], 9.6, 0.9*accCOS[0]); glVertex3f(0.9*accSIN[0], 0.9+0.9*accSIN[0], 0.9*accCOS[0] ); glEnd(); glBegin(GL_QUAD_STRIP); for (i=0;i<ACC;i++) { glNormal3f(0.0, accSIN[i], accCOS[i] ); glVertex3f(0.9*accSIN[i], 0.9+0.9*accSIN[i], 0.9*accCOS[i] ); glVertex3f(5.6, 0.9+0.9*accSIN[i], 0.9*accCOS[i]); } glNormal3f(0.0, accSIN[0], accCOS[0] ); glVertex3f(0.9*accSIN[0], 0.9+0.9*accSIN[0], 0.9*accCOS[0] ); glVertex3f(5.6, 0.9+0.9*accSIN[0], 0.9*accCOS[0]); glEnd(); glBegin(GL_TRIANGLE_FAN); glNormal3f(1.0, 0.0, 0.0); glVertex3f(5.6, 0.9, 0.0); for (i=ACC-1;i>=0;i--) glVertex3f(5.6, 0.9+0.9*accSIN[i], 0.9*accCOS[i]); glVertex3f(5.6, 0.9+0.9*accSIN[ACC-1], 0.9*accCOS[ACC-1]); glEnd();}void draw_part(int i){ glPushMatrix(); glTranslatef(TRANS[i][0]*progress, TRANS[i][1]*progress, TRANS[i][2]*progress); glRotatef(ROT[i]*progress, ROTAXIS[i][0], ROTAXIS[i][1], ROTAXIS[i][2]); switch(i) { case 0: draw_El(); break; case 1: draw_O(); break; case 2: draw_P(); break; case 3: draw_E(); break; case 4: draw_N(); break; case 5: draw_G(); break; case 6: draw_L(); break; } glPopMatrix();}void draw_logo(void){ groen_texture(); glEnable(GL_CULL_FACE); glTranslatef(-2.8, 0.0, 0.0); draw_part(0); glTranslatef(-12.0, 4.3, 0.0); draw_part(1); glTranslatef(7.3, 0.0, 0.0); draw_part(2); glTranslatef(5.4, 0.0, 0.0); draw_part(3); glTranslatef(5.4, 0.0, 0.0); draw_part(4); glTranslatef(7.4, 0.0, 0.0); draw_part(5); glTranslatef(6.8, 0.0, 0.0); draw_part(6);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -