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.
  • [laden | anzeigen] (2004-08-20 13:14:44, 3.2 KB) [[attachment:main.c]]
  • [laden | anzeigen] (2004-08-20 13:20:48, 217.0 KB) [[attachment:sphere.png]]
 Alle Dateien | Ausgewählte Dateien: löschen verschieben auf Seite kopieren auf Seite

Sie dürfen keine Anhänge an diese Seite anhängen!