【互动编程习作】引言——表现随机行为

前言

在《代码本色》的第0章 引言 中,主要讲到了随机行为和噪声,以下为第0章的内容目录:
在这里插入图片描述
针对随机行为和噪声,我进行了自己的习作。

关于习作

学习了《代码本色》第0章的内容之后,关于习作,我想表现的元素就是:

  1. 随机性
  2. 噪声平滑
  3. 三维图像

针对这三个我想要表现的元素,可以使用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立方体的体积以及颜色。
这样就满足了随机性,噪声以及三维效果可视化等多方面的要求。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值