上面是通过使用 rand() 获取随机坐标并在这些坐标处的像素值上添加一个常数生成的示例图像。这是几千次迭代后的样子。我在 Mac OS X Lion 中使用 stdlib.h 中的 rand(),将 time(NULL) 作为种子。
您可以清楚地看到垂直线,就好像具有奇数 x 坐标的那些具有比具有偶数 x 坐标的更高的值。
我将如何实现一种更好的算法,或者我在哪里可以找到一个没有很多依赖项的算法?(我更喜欢只有标题的文件)。
这是代码(对不起,我花了这么长时间):
void generate(int iterations = 1) {
for (unsigned int x = 0;x < (area * 4);++x) {
map[rand() % area] += 1;
}
number a = min();
number b = max();
for (int i = 0;i < area;++i) {
map[i] -= a;
map[i] /= b;
}
}
Map 包含双浮点数,后来转换为 RGB 值。