openGL 2D verschieben und Objekt um 1 Einheit
Habe ich einige Fragen dazu, wie Sie ein Objekt verschieben, indem Sie eine Taste drücken. Alles was ich tun möchte, ist zum drücken der up-Taste bei meiner Tastatur und machen das Objekt zu bewegen eine Einheit.
void display(){
//Clear Window
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glBegin(GL_POLYGON);
glColor3f(1.0, 0.0, 0.0);
glVertex2f(-0.1, -0.2);
glVertex2f(-0.1, 0.2);
glVertex2f(0.1, 0.2);
glVertex2f(0.1, -0.2);
glEnd();
glPopMatrix();
glFlush();
}
void keyboardListener(int key)
{
if( key == GLUT_KEY_UP)
{
glTranslatef(1.0, 0.0, 0.0);
glutPostRedisplay();
}
}
Was fehlt oder was Konzept, ich bin nicht zu verstehen?
- Erhalten Sie die key-up-event ? Was passiert ?
- 1.: Sie müssen uns nur sagen, was NICHT funktioniert, in Ihre Lösung. 2: Versuchen Sie, formulieren Sie Ihre Frage in eine Allgemeine Frage, nicht eine "debug-mein code".
- die übersetzung macht das Objekt gehen 1 Einheit in der x-Achse ist es nicht? also alle Werte "x", das polygon wird nach oben eine Einheit anstelle von -0.1 man in das Bild wäre von 0,0 und 0,1 werden würde, 0.2. Ich finde es auch komisch aus, wenn ich drücken Sie die rechts-Taste, Quadrat bleiben wird, zeigen 90 Grad. Die Funktion wird mir erlauben, in diesem Fall drehen Sie um 90 Grad nach rechts verlassen, es pointind in Richtung 0 Grad? All dies ohne änderung der escene, weil ich denke, rotatef ändert sich die Ansicht, nicht wirklich die physische position des Objekts
Du musst angemeldet sein, um einen Kommentar abzugeben.
verwenden:
Der einfachste Weg ist, etwas zu tun, wie so
Dieser code zeichnet einen Kreis und bewegt nach Links, rechts, oben oder unten-Taste gedrückt.