166 lines
4 KiB
C
166 lines
4 KiB
C
# 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;
|
|
}
|
|
*/
|