我的 Mac 笔记本电脑有 1,024,000 像素。什么是让我的显示器完全变黑并疯狂地编写小程序来旋转像素以令我高兴的最简单方法是什么?
更具体地说,假设我想实现混沌游戏以在像素级别绘制一个谢尔宾斯基三角形,屏幕上没有其他内容。有什么方法可以做到这一点?
也许选择处理
屏幕保护程序肯定是一个偶然的解决方案吗?
一种方法是下载屏幕保护程序模块的示例代码,然后将其用作您自己的屏幕保护程序的模板。这样,您不必编写超出实际绘图代码的太多内容,并且您可以启动自己的自定义屏幕保护程序模块。
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 和许多其他语言中应该几乎相同。
如果您使用的是 C 或 C++,您可以使用SDL来做这些事情。它允许对单个窗口或全屏(加上键盘、鼠标和声卡)的像素进行低级别访问,并且适用于大多数 Windows、OSX 和 Linux。
在http://lazyfoo.net/SDL_tutorials/index.php上有一些关于如何使用这个库的优秀教程。我想你想要在前几个之后的教程#31。