OpenGL - Inkrementor erhöht nachkommazahlen nicht.

HORNSWOGGLE

C++ Beginner
Hi,

Ich probier seit ein paar Tagen mit OpenGL herum, und hab folgendes problem:

Und zwar wenn ich die 'W' Taste drücke verschiebt sich der B Punkt (linex_b) von der Linie, aber der Inkrementor(linex_b++)im case erhöht immer um 1.0 anstatt 0.01 sowie ich es bei der oberen Dekleration(float linex_b = 0.01;) initialisiert habe, das müßte eigentlich funktionieren, da ich für linex_b, float angegeben habe, sprich Fließkommazahl, oder woran liegt das?

Code:
float  linex_b = 0.01;

static void 
display(void)
{
	glDisable(GL_LIGHTING);

    glPushMatrix();

      glTranslatef (0, 0,-2);
   
        GLfloat width=1.5;
        glLineWidth(width);
   
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
               
glBegin(GL_LINES);

   glColor3f(0,0,0.5);
   glVertex3f(0,0,0);  
   glVertex3f(linex_b,0,0); 

glEnd();

glEnable(GL_LIGHTING);
	    
      
    glPopMatrix();
    glutSwapBuffers();
}

 


static void 
key(unsigned char key, int x, int y)
{
    switch (key) 
    {
        case 27 : 
        case 'q':
            exit(0);
        break;
            
        
        case 'w':               
                 linex_b++;   
        break;           
    }

    glutPostRedisplay();
}
 
Hallo,

Prä- und Postinkrement addieren immer 1 auf die Zahl, egal ob es sich um einen Fließkomma- oder einen Ganzzahltypen handelt. Du musst also schon explizit angeben, um wieviel du die Zahl erhöhen willst:
C:
linex_b += 0.01f;

Grüße,
Matthias
 
Ahh,

das hatte ich auch schon versucht, mit dem unterschied das ich nur den + Operanten, also ohne =, deshalb ging es net, was für ein Missgeschick!

Aber vielen Dank dafür!
 
Zurück