【互动媒体创意编程0】柏林噪声生成的随机地形
前言
重接从结课以来陆陆续续一边学一边写的大作业。
这大概是最近时间里写得最舒服的一科作业了。除了偶尔有的bug,整体来说难度都不高,并且写出来真的非常好看也非常有意思。
《代码本色》是我从大一的时候就知道的一本书,但知道最近才真正仔仔细细去看一遍。现在我将前面五章内容的作业写到一个文档中,因为它们之间彼此有一些联系,也可以从相互之间得到一些启发。
我在构思的前期花费了很多时间。相关的想法网上有很多,但是都不是很有趣。因此我花费了很多时间在油管上找了一些实例,参考了一些,也仿写了一些。(有一些想法真的是很妙呀。)
第0章:随机游走和泊林噪声
这是模仿youtube上的一个代码挑战编写的程序。先来看效果:

比较显而易见的是,这样的地形很显然是由一块平整地形进行局部节点拔高形成的。
在二维平面中,我们很容易能够将整块画布切分为一定密度的网格,只需要计算它的行和列,并连接成线即可。
不过,我们如果想要一块可以动的地形,那么就必然不可能通过画线来实现这样的网格,除非我们计算每一个节点的位置,然而这样的做法很显然是没有必要的。
processing为用户定义了绘制特定图形的方法,即beginShape()、vertex()以及endShape()。通过这三个函数,我们将能够利用计算好的节点位置批量生成图形。在这里,这个方法显现出了巨大的优势。

代码也很简单:
int cols,rows;
int density =20;
color currentColor;
int scl = 20;
void setup(){
size(900,600,P3D);
int w = 900;
int h = 600;
cols = w/scl;
rows = h/ scl;
}
void draw() {
background(0);
stroke(255);
noFill();
for(int y=0;y < rows;y++){
beginShape(TRIANGLE_STRIP);
for(int x=0; x

这篇博客介绍了如何利用Processing库中的柏林噪声生成随机地形。作者通过详细讲解随机游走和泊松噪声的概念,展示了如何将二维平面转化为动态的三维地形。通过调整噪声参数和利用rotate()函数改变视角,实现了地形的滚动效果。最后,提供了完整的代码示例。
最低0.47元/天 解锁文章
7865

被折叠的 条评论
为什么被折叠?



