Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » OpenGL » Problem bei Zylinderprogrammierung in obengl

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.12.2006, 15:39 Uhr
~Sven1980
Gast


Hallo!
Bin im moment dabei den Mantel des Zylinders zu programmieren. Mein Problem ist, dass sich die letzten beiden Flächen nicht treffen. Liegt eventuell daran, dass irgendwas mit dem Winkel nicht stimmt. Kann mir aber nicht erklären was da falsch sein sollte.

Könnt ihr mir sagen woran es liegt?


Vielen Dank schon mal!

Grüße!


Code:
void cylinder(){
    const float radius = 1.0f;
    float hoehe = 2.0f;

    // clear buffers
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

     // switch to modelview matrix
     glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();

     // viewing transformations
     glTranslated(-PAN_X,-PAN_Y,-EYE_DISTANCE);
     build_rotmatrix(TRANSFORM_MATRIX, CURRENT_QUATERNION);
     glMultMatrixf(&TRANSFORM_MATRIX[0][0]);
    
    glColor3f(1.0f,0.0f,0.0f);//rot

    // unit box with vertex array and quad strip
    static GLfloat geometry[] = {
                    (float)(radius*cos(0.0f)), (float)(radius*sin(0.0f)), hoehe,
                    (float)(radius*cos(0.0f)), (float)(radius*sin(0.0f)), hoehe+1,

                    (float)(radius*cos(45.0f)), (float)(radius*sin(45.0f)), hoehe,
                    (float)(radius*cos(45.0f)), (float)(radius*sin(45.0f)), hoehe+1,
                    
                    (float)(radius*cos(90.0f)), (float)(radius*sin(90.0f)), hoehe,
                    (float)(radius*cos(90.0f)), (float)(radius*sin(90.0f)), hoehe+1,

                    (float)(radius*cos(135.0f)), (float)(radius*sin(135.0f)), hoehe,
                    (float)(radius*cos(135.0f)), (float)(radius*sin(135.0f)), hoehe+1,

                    (float)(radius*cos(180.0f)), (float)(radius*sin(180.0f)), hoehe,
                    (float)(radius*cos(180.0f)), (float)(radius*sin(180.0f)), hoehe+1,

                    (float)(radius*cos(225.0f)), (float)(radius*sin(225.0f)), hoehe,
                    (float)(radius*cos(225.0f)), (float)(radius*sin(225.0f)), hoehe+1,

                    (float)(radius*cos(270.0f)), (float)(radius*sin(270.0f)), hoehe,
                    (float)(radius*cos(270.0f)), (float)(radius*sin(270.0f)), hoehe+1,

                    (float)(radius*cos(315.0f)), (float)(radius*sin(315.0f)), hoehe,
                    (float)(radius*cos(315.0f)), (float)(radius*sin(315.0f)), hoehe+1,

                    (float)(radius*cos(360.0f)), (float)(radius*sin(360.0f)), hoehe,
                    (float)(radius*cos(360.0f)), (float)(radius*sin(360.0f)), hoehe+1
    };//end geometry[]

    static GLshort topology[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(3,GL_FLOAT,0,geometry);
    glDrawElements(GL_QUAD_STRIP,16,GL_UNSIGNED_SHORT,topology);
    glDisableClientState(GL_VERTEX_ARRAY);



    glutSwapBuffers();
};
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.03.2008, 21:10 Uhr
veemon



Nur gerade eine Idee:

Sind die Sinus- und Cosinus-Funktionen nicht mit Winkeln im Bogenmass anzugeben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.03.2008, 21:27 Uhr
mmc20
puss in boots


hi, schau dir mal "GLUquadricObj" an, da kannste relativ einfach zylinder, kugeln usw. zeichnen

ist in den NeHe-tuts, lesson 18 gut beschrieben

Dieser Post wurde am 22.03.2008 um 21:36 Uhr von mmc20 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ OpenGL ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: