пиксельное рисование в pyglet (питон) - PullRequest
5 голосов
/ 20 августа 2010

OK. Мне надоело гуглить и читать множество документов без результатов.

Моя цель проста: заставить pyglet нарисовать изображение попиксельно.

Я искал часы безрезультатно. Кто-нибудь может привести пример короткой программы, которая рисует на экране, указывая цвет за пикселем? Например: рисование градиента от черного к белому.

1 Ответ

6 голосов
/ 20 августа 2010

Пока вы понимаете, что это займет длинное время ...:

pyglet.graphics.draw может нарисовать одну или несколько точек, когда вы пройдете ее pyglet.gl.GL_POINTS, иВы можете передать такие атрибуты, как цвет, а также координаты.Например:

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))
        )

рисует квадрат 50 на 50 с диагональным градиентом от черного к белому.Только не ожидайте, что это будет сделано особенно быстро ;-) - GL действительно ориентирован на графику с гораздо более высоким уровнем абстракции, а не на рисование «пиксель за пикселем».

Вы можете получить хоть немногодополнительной скорости, вычисляя (скажем) строку за раз, и рисуя ее, вместо того, чтобы фактически рисовать пиксели по отдельности.Но это все равно не будет супер-быстрым! -)

...