我的Mac笔记本拥有1,024,000像素。 什么是最简单的方法来将我的显示器完全变黑,并坚持写一些小程序来旋转像素以满足我心中的喜悦?漂亮的像素级绘画,编程
为了使它更具体一些,比如我想实现Chaos Game在像素级绘制一个Sierpinski三角形,屏幕上没有其他东西。 有什么方法可以做到这一点?
我的Mac笔记本拥有1,024,000像素。 什么是最简单的方法来将我的显示器完全变黑,并坚持写一些小程序来旋转像素以满足我心中的喜悦?漂亮的像素级绘画,编程
为了使它更具体一些,比如我想实现Chaos Game在像素级绘制一个Sierpinski三角形,屏幕上没有其他东西。 有什么方法可以做到这一点?
也许挑Processing
Create Quartz肯定是一个屏幕保护程序将是一个偶然的解决方案?
一种方法是下载屏幕保护程序模块的示例代码,然后将其用作您自己屏幕保护程序的模板。这样你就不必再写实际的绘图代码了,你可以自己定制屏幕保护程序模块来启动。
XCode中有一个屏幕保护程序模板,负责处理基本知识 - 只需在“animateOneFrame”中添加图形。不过,屏幕保护程序在调试时很痛苦,因为它们在另一个应用程序的空间中作为加载模块运行。 Cocoa中的像素级绘图也需要一点时间。 – walkytalky 2010-06-15 21:32:33
聪明的建议! – dreeves 2010-06-15 22:51:24
使一个运行全屏的普通应用程序(如许多游戏)更容易。这样,您可以轻松进行调试,甚至可以根据需要添加交互功能。 – 2010-06-17 13:51:09
我正在使用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和许多其他语言中应该几乎相同。
我爱满足。 – 2010-06-15 20:14:56
绝对如此。 Alliterations非常棒。 (顺便说一句,头顶的答案也可以接受!) – dreeves 2010-06-15 20:57:36
+1的惊人标题。 – 2010-06-15 22:17:04