1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Heinzel

Beiträge von Heinzel

Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • [Open-GL] GluLookAt

    • Heinzel
    • 29. Juni 2007 um 18:44

    Hallo,

    riesen Problem! Wir schreiben am Mo eine Klausur in Grafischer-Datenverarbeitung und haben ein kleines Problem. Wir können uns die Funktionsweise von GluLookAt nicht so ganz erklären, genauer die des UP-Vektors. Hier werden immer irgendwelche Objekte gedreht, nur so richtig klar ist mir das nicht!

    Ich hätte hier mal ein paar SourceCodes:


    #include <stdlib.h>
    #include <stdio.h>
    #include <GL/glut.h>


    void display(void);
    void init (void);
    void reshape(int w, int h);

    int main (int argc, char **argv){
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA);
    glutCreateWindow("muh");
    init();
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutMainLoop();
    return 0;
    }


    void display(void){
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0,0.0,0.0);
    glLoadIdentity();
    gluLookAt(0.0,0.0,5.0, 0.0,0.0,0.0, 0.0,1.0,0.0);

    //hier zeigt das Objekt nach rechts!

    glPushMatrix();
    glScalef(2.0, 1.0, 1.0);
    glutWireCube(1.0);
    glPopMatrix();
    glPushMatrix();
    glTranslatef(1.0, 0.0, 0.0);
    glRotatef(90.0, 0.0, 1.0, 0.0);
    glutWireCone(0.5, 1.0, 30.0, 30.0);
    glPopMatrix();
    glFlush();
    }

    void init(void){
    glShadeModel(GL_FLAT);
    glClearColor(1.0,1.0,1.0,1.0);
    }

    void reshape(int w, int h)
    {
    glViewport(0,0, (GLsizei)w, (GLsizei)h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-2.0, 3.0, -2.0, 2.0, 0.0, 20.0);
    glMatrixMode(GL_MODELVIEW);

    }


    -> bei diesem Programm zeigt es allerdings nach oben (in der Ausganssituation): Warum nicht auch nach rechts?


    #include <stdlib.h>
    #include <GL/glut.h>


    void display(void);
    void init(void);
    void reshape(int w, int h);
    void keyboard(unsigned char key, int x, int y);

    int main (int argc, char **argv){
    glutInitWindowSize(400,400);
    glutInitWindowPosition(100,100);
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
    glutCreateWindow(argv[0]);
    init();
    glutReshapeFunc(reshape);
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
    return 0;
    }


    void display(void){
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POLYGON);
    glVertex3d(0.0,0.8,0.0);
    glVertex3d(0.4,0.6,0.0);
    glVertex3d(0.4,-0.8,0.0);
    glVertex3d(-0.4,-0.8,0.0);
    glVertex3d(-0.4,0.6,0.0);
    glEnd();
    glutSwapBuffers();

    }

    void init(void){
    glClearColor(1.0,1.0,1.0,1.0);
    glColor3f(1.0,0.0,0.0);
    }

    void reshape(int w, int h)
    {
    glViewport(0,0, (GLsizei)400, (GLsizei)400);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
    glMatrixMode(GL_MODELVIEW);
    gluLookAt(0.0,0.0,1.0, 0.0,0.0,0.0, 0.0,1.0,0.0);
    }

    void keyboard(unsigned char key, int x, int y)
    {
    switch(key)
    {
    case '1':
    glRotatef(-45.0,0.0,0.0,1.0);
    glPushMatrix();
    glutPostRedisplay();
    break;
    case '2':
    glScalef(1.0,-0.5,1.0);
    glutPostRedisplay();
    break;
    case '3':
    glLoadIdentity();
    glRotatef(45.0,0.0,0.0,1.0);
    glutPostRedisplay();
    break;
    case '4':
    exit(0);
    default:
    break;
    }
    }

    Unser Prof. konnte uns das nicht wirklich näher bringen und hoffe nun, daß das hier jemand machen kann. Sowas kommt nämlich immer dran und dann wäre es schlecht, wenn ichs net kann :P

    Über Hilfe würde ich mich freuen...

    MfG

  1. Datenschutzerklärung
  2. Impressum