Dateianhang 'main.c'
Herunterladen 1 #include <stdio.h>
2 #include <GL/glut.h>
3 #include <math.h>
4
5 static GLfloat spin=0.0;
6 GLfloat d=0.0;
7 GLfloat e=0.0;
8 GLfloat a=0.0;
9 int autorotate=0;
10 void display(void){
11 GLdouble eqn[4] = {0.0,1.0,0.0,0.0};
12 GLdouble eqn2[4] = {1.0,0.0,0.0,0.0};
13 GLfloat circle;
14 GLfloat i;
15 GLfloat oldx;
16 GLfloat oldy;
17 GLfloat alpha;
18 GLfloat length;
19 glMatrixMode(GL_MODELVIEW);
20 glLoadIdentity();
21 glClearColor(0,0,0.2,0);
22 glColor3f (0, 0, 0.9);
23 glClear(GL_COLOR_BUFFER_BIT);
24 glFlush();
25 if(autorotate==1){
26 a++;
27 glRotatef(a,1,1,1);
28 if(a==360){
29 a=0;
30 }
31 }
32
33 glRotatef(d,1,0,0);
34 glRotatef(e,0,1,0);
35 glBegin(GL_LINES);
36 glVertex3f(0,0,0);
37 glVertex3f(0,1,0);
38 glVertex3f(0,0,0);
39 glVertex3f(0,0,1);
40 glVertex3f(0,0,0);
41 glVertex3f(1,0,0);
42 glEnd();
43 for(i=1;i<360;i+=5){
44 glBegin(GL_LINES);
45 for(circle=0;circle<=360;circle++){
46 glVertex3f(sin(circle/180*M_PI),cos(circle/180*M_PI),0);
47
48 }
49 glEnd();
50 glRotatef(5,0,1,0);
51 }
52 for(i=-1;i<=1;i+=0.1){
53 length=cos(asin(i));
54 glBegin(GL_LINES);
55 for(circle=0;circle<=360;circle++){
56 if(length!=0){
57 glVertex3f(length*sin(circle/180*M_PI),i,length*cos(circle/180*M_PI));
58 }
59 }
60 glEnd();
61 }
62 glFlush();
63 glutSwapBuffers();
64 }
65
66 void keyboard(int key, int x, int y){
67
68 glMatrixMode(GL_MODELVIEW);
69 glLoadIdentity();
70 switch(key){
71 case GLUT_KEY_UP:
72 printf("key up!\n");
73 d--;
74 break;
75 case GLUT_KEY_DOWN:
76 printf("key down!\n");
77 d++;
78 break;
79 case GLUT_KEY_LEFT:
80 printf("key left!\n");
81 e--;
82 break;
83 case GLUT_KEY_RIGHT:
84 printf("key right!\n");
85 e++;
86 break;
87 case GLUT_KEY_PAGE_UP:
88 autorotate=1;
89 a++;
90 break;
91 case GLUT_KEY_PAGE_DOWN:
92 autorotate=0;
93 break;
94 }
95 display();
96 }
97
98
99 int main(int argc, char **argv){
100 glutInit(&argc,argv);
101 glutInitDisplayMode(GLUT_DOUBLE| GLUT_RGB| GLUT_DEPTH);
102 glutInitWindowSize(640,480);
103 glEnable(GL_DEPTH_TEST);
104 glEnable(GL_TEXTURE_2D);
105 glMatrixMode(GL_MODELVIEW);
106 glLoadIdentity();
107 glutInitWindowPosition(0,0);
108 glutCreateWindow("revenger's tutorial");
109 glutSpecialFunc(keyboard);
110 // display();
111 glutDisplayFunc(display);
112 glutIdleFunc(display);
113 glutMainLoop();
114 return(0);
115 }
Gespeicherte Dateianhänge
Um Dateianhänge in eine Seite einzufügen sollte unbedingt eine Angabe wie attachment:dateiname benutzt werden, wie sie auch in der folgenden Liste der Dateien erscheint. Es sollte niemals die URL des Verweises ("laden") kopiert werden, da sich diese jederzeit ändern kann und damit der Verweis auf die Datei brechen würde.Sie dürfen keine Anhänge an diese Seite anhängen!