# define M_PI 3.14159265358979323846 /* pi */ #define CNT 10 float k; int width, height; float vretices_4[CNT*3][3]; //float texCoord_2[] = {0,1, 1,1, 1,0, 0,0}; GLuint index_L_3[CNT*3*3+1][2]; void SAS(){ float x,y; int v = CNT; float l = 0.30; float a = M_PI * 2 / CNT; for (int i = 0; i < CNT; i++){ x = sin(a*i) * l; y = cos(a*i) * l; vretices_4[i][0] = x; vretices_4[i][1] = y; vretices_4[i][2] = 0; } l = 0.15; for (int i = 0; i < CNT; i++){ x = sin(a*i) * l; y = cos(a*i) * l; vretices_4[v+i][0] = x; vretices_4[v+i][1] = y; vretices_4[v+i][2] = 0.6; } v = v + CNT; l = 0.2; for (int q = 0; q < CNT; q++){ x = sin(a*q) * l; y = cos(a*q) * l; vretices_4[v+q][0] = x; vretices_4[v+q][1] = y; vretices_4[v+q][2] = 0.8; } v = v + CNT; vretices_4[v][0] = 0; vretices_4[v][1] = 0; vretices_4[v][2] = 0.9; v++; vretices_4[v][0] = 0; vretices_4[v][1] = 0; vretices_4[v][2] = 0; int i = 0, nnn; for (int m = 0; m != 3; m++){ nnn = i; for (int b = 0; b <= CNT-2; i++, b++){ index_L_3[i][0] = i; index_L_3[i][1] = i+1; } index_L_3[i][0] = i; index_L_3[i][1] = nnn; i++; } nnn = i; int M = i; i = 0; for (int b = 0; b <= CNT-1; i++, b++, nnn++){ index_L_3[nnn][0] = i; index_L_3[nnn][1] = i+CNT; nnn++; index_L_3[nnn][0] = i; index_L_3[nnn][1] = M+1; nnn++; if (b != 0){ index_L_3[nnn][0] = i; index_L_3[nnn][1] = i+CNT-1; } else{ index_L_3[nnn][0] = i; index_L_3[nnn][1] = i+CNT+CNT-1; } } for (int b = 0; b <= CNT-1; i++, b++, nnn++){ index_L_3[nnn][0] = i; index_L_3[nnn][1] = i+CNT; nnn++; index_L_3[nnn][1] = i+CNT; index_L_3[nnn][0] = M; nnn++; if (b != 0){ index_L_3[nnn][0] = i; index_L_3[nnn][1] = i+CNT-1; } else{ index_L_3[nnn][0] = i; index_L_3[nnn][1] = i+CNT+CNT-1; } } index_L_3[nnn][1] = M; index_L_3[nnn][0] = M+1; } unsigned int texsture_target; /* void glTexParam(){ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);// GL_CLAMP glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);// GL_REPEAT glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);// GL_NEAREST glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);// GL_LINEAR } */ void render_figure_2(){ glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3, GL_FLOAT, 0 , &vretices_4); glDrawElements(GL_LINES, sizeof(index_L_3) / sizeof(index_L_3[0][0]), GL_UNSIGNED_INT, &index_L_3); // GL_LINES GL_TRIANGLE_FAN glDisableClientState(GL_VERTEX_ARRAY); } //float i = 0, q = 0; float i = 0; /* void render(void){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glutPostRedisplay(); glPushMatrix(); glColor3f(1,1,1); glLoadIdentity(); glFrustum(-k,k, -1,1, 2, 50); glTranslatef(0,0,-3); glRotatef(q+=0.2,1,0,1); glLineWidth(2); glColor3f(0.1f,0.8f,0.0f); render_figure_2(); glutSwapBuffers(); glFlush(); usleep(1000000/144); } */ /* void ChangeWindow(int width_l, int height_l){ width = width_l; height = height_l; printf("width: %i width: %i\n", width, height); glViewport(0,0, width, height); glLoadIdentity(); k = width / (float)height; glOrtho(-k,k, -1,1, -1,1); } int main(int argc, char** argv){ SAS(); glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE); glutInitWindowSize(800, 800); glutInitWindowPosition(100, 100); glutCreateWindow("Hello world!"); glutDisplayFunc(render); glutReshapeFunc(ChangeWindow); glutMainLoop(); return 0; } */