【互動編程習作】引言——表現隨機行爲

前言

在《代碼本色》的第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立方體的體積以及顏色。
這樣就滿足了隨機性,噪聲以及三維效果可視化等多方面的要求。

發佈了27 篇原創文章 · 獲贊 22 · 訪問量 5228
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章