J'utilise PyOpenGL et GLUT pour dessiner un carré qui se déplace dans un cercle. Je n'efface pas l'écran après avoir dessiné des carrés, car je désire un effet traînant. Pour une raison quelconque, les carrés qui ont déjà été dessinés bougeront lorsque de nouveaux seront dessinés.Comportement de pixellisation OpenGL étrange
Notez que le pixel supplémentaire dans le trait des carrés est et non le problème. C'est le fait que la trace des carrés n'est pas statique.
Here est un exemple de l'effet
Je fournir le code que je pense est pertinent. Tout d'abord, le code que j'utilise pour initialiser la fenêtre:
glutInit()
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH)
glutInitWindowSize(width, height)
En second lieu, ce morceau de code est appelé une fois avant chaque carré en cours d'élaboration.
glLoadIdentity()
glViewport(0, 0, width, height)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0.0, width, 0.0, height, 0.0, 1.0)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
En troisième lieu, le dessin réel de la place
def rect_fill(x, y, w, h):
glBegin(GL_QUADS)
glVertex2f(x, y)
glVertex2f(x + w, y)
glVertex2f(x + w, y + h)
glVertex2f(x, y + h)
glEnd()
def rect_stroke(x, y, w, h, lw):
lw = lw/2
glBegin(GL_LINES)
glVertex2f(x - lw, y)
glVertex2f(x + w + lw, y)
glVertex2f(x + w, y - lw)
glVertex2f(x + w, y + h + lw)
glVertex2f(x + w + lw, y + h)
glVertex2f(x - lw, y + h)
glVertex2f(x, y + h + lw)
glVertex2f(x, y - lw)
glEnd()
Je suis dans ce domaine depuis un certain temps, et n'ont pas été en mesure de trouver quelqu'un avec des problèmes similaires. Merci pour toute aide.
Sauf 'width == height',' lw' ne sera pas le même pour les axes x et y. – BDL
J'ai modifié la question pour clarifier que le pixel supplémentaire n'est pas le problème. –
Pourquoi les downvotes? S'il vous plaît laissez un commentaire si vous avez downvoted. –