私のMacラップトップには1,024,000ピクセルがあります。ディスプレイを完全に黒くして、ピクセルをいじる小さなプログラムを書いて心から喜ぶ最も簡単な方法は何ですか?
より具体的に言うと、カオス ゲームを実装して、ピクセル レベルでシェルピンスキーの三角形を描画し、画面には他に何も表示しないとします。それを行う方法は何ですか?
おそらく処理を選択します
確かにスクリーンセーバーは偶然の解決策でしょうか?
1 つの方法は、スクリーン セーバー モジュールのサンプル コードをダウンロードし、それを独自のスクリーン セーバーのテンプレートとして使用することです。そうすれば、実際の描画コード以上のことを書く必要がなくなり、独自のカスタム スクリーン セーバー モジュールを起動することができます。
私はあなたが C または C++ を使用していますが、これはSDLで行うことができます。単一のウィンドウまたは全画面 (キーボード、マウス、およびサウンドカードに加えて) のピクセルへの低レベル アクセスを許可し、ほとんどの Windows、OSX、および Linux で動作します。
このライブラリの使用方法に関する優れたチュートリアルがhttp://lazyfoo.net/SDL_tutorials/index.phpにあります。最初のいくつかの後にチュートリアル #31 が必要だと思います。
良い方法は、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 や他の多くの言語でもほぼ同じはずです。