【互动媒体创意编程0】柏林噪声生成的随机地形

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【互动媒体创意编程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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值