2010-08-20 8 views
5

OK. Je suis fatigué de googler et de lire beaucoup de documentation sans résultat.dessin pixelwise en pyglet (python)

Mon but est simple: obtenir pyglet pour dessiner une image pixel par pixel.

J'ai recherché des heures sans résultats. Quelqu'un peut-il donner un exemple d'un programme court qui dessine dans un affichage spécifiant la couleur pixel par pixel? Par exemple: dessiner un dégradé du noir au blanc.

+0

Avez-vous besoin d'utiliser pyglet? pygame rendrait cela beaucoup plus facile –

+0

@gnibbler: Oui, mon code a été écrit à l'origine en pygame et cela a fonctionné (au moins chez moi). Mais j'avais besoin de le lancer à mon université et je ne pouvais pas faire virtualenv pour soutenir pygame ... Alors je suis allé pour pyglet –

Répondre

6

Tant que vous vous rendez compte que cela va prendre beaucoup de temps ...:

pyglet.graphics.draw can dessiné un ou plusieurs points lorsque vous le transmettre pyglet.gl.GL_POINTS, et vous pouvez passer des attributs tels que la couleur aussi bien comme coordonnées. Par exemple:

for i in range(50): 
    for j in range(50): 
     color = int(2.56 * (i + j)) 
     pyglet.graphics.draw(1, pyglet.gl.GL_POINTS, 
      ('v2i', (i, j)), 
      ('c3B', (color, color, color)) 
     ) 

tire 50 de 50 carrés avec un gradient diagonale du noir au blanc-ish. Ne vous attendez pas à ce que ce soit particulièrement rapide ;-) - GL est vraiment orienté vers les graphismes avec un niveau d'abstraction beaucoup plus élevé, pas une peinture "pixel par pixel".

Vous pourriez obtenir un minimum de vitesse supplémentaire en calculant (disons) une rangée à la fois, et en dessinant cela, au lieu de dessiner des pixels séparément. Mais ce ne sera pas encore super-rapide! -)

+1

Merci Alex! J'utilise votre idée puisque je dessine juste de cette manière pixelwise pour le débogage. Pas besoin de haute performance. –

+1

@Manuel, de rien! –