1

我正在编写一个程序来生成一些狂野的视觉效果。到目前为止,我可以用随机的蓝色值绘制每个像素:

for (y = 0; y < YMAX; y++) {
    for (x = 0; x < XMAX; x++) {
        b = rand() % 255;
        setPixelColor(x,y,r,g,b);
    }
}

我想做的不仅仅是制造蓝色噪音,但我不知道从哪里开始(谷歌今天对我的帮助不大),所以如果你能分享你所知道的关于这个主题的任何事情,那就太好了相关资源的链接。

4

2 回答 2

0

波通常使用三角函数(sin/cos)或近似它们的表来完成。

你也可以用一些简单的数学来做一些很酷的水波纹。有关代码和在线演示,请参见此处。

于 2010-04-15T09:30:02.440 回答
0

我过去曾经做过这样的把戏。不幸的是,我没有代码:-/

您会惊讶于按位和整数算术运算符可以产生的效果:

FRAME_ITERATION++;
for (y = 0; y < YMAX; y++) {
    for (x = 0; x < XMAX; x++) {
        b = (x | y) % FRAME_ITERATION;
        setPixelColor(x,y,r,g,b);
    }
}

对不起,但我不记得确切的组合,所以b = (x | y) % FRAME_ITERATION;
实际上可能没有什么漂亮的。但是,您可以尝试自己的组合。

无论如何,使用上面这样的代码,你可以产生奇怪的图案,甚至是水一样的效果。

于 2010-04-15T09:45:32.380 回答