Довольно Pixel-Level Picture Painting, Программно - PullRequest
5 голосов
/ 16 июня 2010

Мой ноутбук Mac имеет 1 024 000 пикселей. Какой самый простой способ сделать мой дисплей полностью черным и сойти с ума, написав маленькие программы, чтобы вертеть пиксели в радость моего сердца?

Чтобы сделать его более конкретным, скажем, я хотел реализовать Chaos Game , чтобы нарисовать треугольник Серпинского, на уровне пикселей, и больше ничего на экране. Как это сделать?

Ответы [ 5 ]

3 голосов
/ 16 июня 2010

Возможно забрать Обработка

2 голосов
/ 16 июня 2010

Конечно, Заставка будет счастливым решением?

Один из подходов состоит в том, чтобы загрузить пример кода для модуля заставки, а затем использовать его в качестве шаблона для собственной заставки. Таким образом, вам не нужно писать что-то большее, чем фактический код для рисования, и вы получаете свой собственный модуль заставки для загрузки.

2 голосов
/ 16 июня 2010
1 голос
/ 16 июня 2010

Хороший путь - GLUT, (немного) дружественная многоплатформенная оболочка для OpenGL. Вот некоторый код, чтобы изменить некоторые моменты:

#include <GL/glut.h>

void
reshape(int w, int h)
{
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, w, 0, h, -1, 1);
}

void
display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POINTS);
    for (int i = 0; i<399; ++i)
    {
        glVertex2i(i, (i*i)%399);
    }
    glEnd();
    glFlush();
}

int
main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("some points");
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutMainLoop();
    return 0;
}

Это C ++, но оно должно быть почти идентичным в Python и многих других языках.

1 голос
/ 16 июня 2010

Если вы используете C или C ++, вы можете сделать это с помощью SDL .Он обеспечивает низкоуровневый доступ к пикселям одного окна или полного экрана (плюс клавиатура, мышь и звуковая карта) и работает на большинстве Windows, OSX и Linux.использовать эту библиотеку в http://lazyfoo.net/SDL_tutorials/index.php. Я думаю, что вы хотите учебник # 31 после первых нескольких.

...