我的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