2017-04-05 1 views
0

Ich habe versucht, ein Polygon in openGL zu erstellen und zu übersetzen, ich erstelle eine Funktion für die Übersetzung, aber das Erstellen einer weißen Linie von x0 bis v_size und ich verstehe nicht warum?Was ist falsch in der Übersetzungsfunktion?

Dies ist meine Funktion für Polygon Übersetzung

public void translate1(GL2 gl, double x0, double x1, double y0, double y1){ 
    double step = 0.2; 
    for(double i = 0; i < v_size; i += step){ 
     gl.glBegin(GL2.GL_POLYGON); 

      gl.glVertex2d(x0 + i, y0); 
      gl.glVertex2d(x0 + i, y1); 
      gl.glVertex2d(x1 + i, y1); 
      gl.glVertex2d(x1 + i, y0); 

     gl.glEnd(); 
    } 
} 

Initial x0 = 0, x1 = 10, y 0 = 20, y1 = 30.

Dank! Einen schönen Tag noch!

Antwort

1

Der Grund dafür ist, dass Sie Quadrate jede Schritteinheit voneinander weg zeichnen. Da in der Zwischenzeit nichts gelöscht wird, bilden die überlappenden Quads eine Linie.

Es ist ziemlich unklar, was Sie zu erreichen versuchen. Eine Übersetzung würde normalerweise nicht mehrere Quads zeichnen. Wenn Sie versuchen, eine Animation auszuführen, müssen Sie die Bewegung auf mehrere Frames aufteilen und genau ein Quadrat in jedem Frame zeichnen.