【互动编程习作】引言——表现随机行为
程序员文章站
2022-07-15 08:07:05
...
前言
在《代码本色》的第0章 引言 中,主要讲到了随机行为和噪声,以下为第0章的内容目录:
针对随机行为和噪声,我进行了自己的习作。
关于习作
学习了《代码本色》第0章的内容之后,关于习作,我想表现的元素就是:
- 随机性
- 噪声平滑
- 三维图像
针对这三个我想要表现的元素,可以使用Perlin Noise去实现。
noise()函数传入三个参数,在柏林噪声随机序列中,就可以产生三维的柏林噪声,使用立方体阵以通过颜色和体积对不同空间点的强度进行可视化。这样就实现了随机性、噪声平滑以及最后的三维可视化。
下面是效果图和具体代码实现:
void setup(){
size(800, 400, P3D);
background(100,100,100);
noStroke();
lights();
}
float t = 0;
void draw(){
++t;
clear();
for (int x = 0; x < width; x += 20){
for (int y = 0; y < height; y += 20){
for (int z = 40; z < 500; z += 20){
float n = noise(0.02*(x), 0.02*(y), 0.02*(z+t));
translate(x,y,-z);
fill(t*100,n*160);
box(n*25);
translate(-x,-y,z);
}
}
}
}
关于代码
首先是在setup()函数里面创建三维画布,设置背景色等等。
设置一个变量 t ,这个变量用于使得图像动态随时间变化,这个变量在draw()函数中递增。
在draw()函数里面嵌套了三层for循环。
其中设置一个变量 n,用来接收返回的 noise()函数的值,这个随机产生的噪声值,用来控制box立方体的体积以及颜色。
这样就满足了随机性,噪声以及三维效果可视化等多方面的要求。
上一篇: Spring Boot配置文件详解