映射噪聲(漫步游走程序)

書名:代碼本色:用編程模擬自然系統(tǒng)
作者:Daniel Shiffman
譯者:周晗彬
ISBN:978-7-115-36947-5

0.6.1 映射噪聲

1昼窗、如何處理得到的噪聲值

??我們開始研究如何處理得到的噪聲值甸祭。

  • 得到0~1的噪聲值之后查刻,我們需要將它映射到我們想要的范圍內(nèi)
  • 最方便的方法是使用Processing的map()函數(shù)。
    map()函數(shù)有5個(gè)參數(shù)涎显。
    第一個(gè)參數(shù)是我們想要映射的值(這里即n)崔兴,
    后面的兩個(gè)參數(shù)是該值原來的范圍(最大值和最小值),
    最后兩個(gè)參數(shù)是目標(biāo)范圍矢腻。
圖0-8

2、映射

??我們知道噪聲函數(shù)的返回值在0~1的范圍內(nèi)射赛,但我們想要在0到窗口寬度的范圍內(nèi)畫這個(gè)圓多柑。

float t = 0;
void draw() {
  float n = noise(t);
  float x = map(n,0,1,0,width); 用map()函數(shù)定制Perlin噪聲的范圍
  ellipse(x,180,16,16);
  t += 0.01;
}

3、Perlin噪聲游走模型

class Walker {
  float x, y;
  float tx, ty;

  float prevX, prevY;

  Walker() {
    tx = 0;
    ty = 10000;
    x = map(noise(tx), 0, 1, 0, width);
    y = map(noise(ty), 0, 1, 0, height);
  }

  void render() {
    stroke(255);
    line(prevX, prevY, x, y);
  }

  // Randomly move according to floating point values
  void step() {

    prevX = x;
    prevY = y;

    x = map(noise(tx), 0, 1, 0, width);
    y = map(noise(ty), 0, 1, 0, height);

    tx += 0.01;
    ty += 0.01;

  }
}
  • 請(qǐng)注意上面的例子是如何使用tx和ty這對(duì)變量做參數(shù)的楣责。
    我們同時(shí)需要跟蹤兩個(gè)時(shí)間變量竣灌,一個(gè)用于產(chǎn)生游走對(duì)象的x坐標(biāo),另一個(gè)用于產(chǎn)生y坐標(biāo)秆麸,
    但是這兩個(gè)變量還有一些奇怪的地方帐偎,為什么tx從0開始,而ty從10 000開始蛔屹?
    盡管這兩個(gè)初始值是隨意確定的,但我們故意用了不同的值來初始化這兩個(gè)時(shí)間變量豁生。
    這是因?yàn)樵肼暫瘮?shù)的返回結(jié)果是確定的:無論何時(shí)調(diào)用它兔毒,只要傳入的時(shí)間點(diǎn)t相同,返回的結(jié)果也相同甸箱。
    如果我們通過同一個(gè)時(shí)間點(diǎn)t獲取兩個(gè)坐標(biāo)育叁,返回的x坐標(biāo)和y坐標(biāo)會(huì)是相等的,這意味著游走對(duì)象Walker只會(huì)在一條對(duì)角線上移動(dòng)芍殖。
    在這里豪嗽,我們用了噪聲空間的兩個(gè)不同區(qū)域,x坐標(biāo)對(duì)應(yīng)的區(qū)域從0開始,y坐標(biāo)對(duì)應(yīng)的區(qū)域從10 000開始龟梦,這樣x坐標(biāo)和y坐標(biāo)就會(huì)彼此獨(dú)立隐锭。
圖0-9
  • 實(shí)際上,Perlin噪聲是沒有時(shí)間軸這個(gè)概念的计贰。
    為了讓大家更容易地理解噪聲函數(shù)的工作方式钦睡,我引入了時(shí)間軸這個(gè)隱喻。但是躁倒,我們應(yīng)該有空間的概念荞怒,而不該有時(shí)間軸的概念。
    上圖描述了噪聲序列在一維空間上的排列秧秉,我們可以獲取任意x坐標(biāo)上的噪聲值褐桌。
    比如,你經(jīng)常會(huì)在噪聲圖中看到一個(gè)叫xoff的變量象迎,它表示x軸上的偏移量荧嵌,取代上面說的時(shí)間點(diǎn)變量t(見圖表注解)。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挖帘,一起剝皮案震驚了整個(gè)濱河市完丽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拇舀,老刑警劉巖逻族,帶你破解...
    沈念sama閱讀 223,207評(píng)論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異骄崩,居然都是意外死亡聘鳞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門要拂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抠璃,“玉大人,你說我怎么就攤上這事脱惰〔耍” “怎么了?”我有些...
    開封第一講書人閱讀 170,031評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵拉一,是天一觀的道長(zhǎng)采盒。 經(jīng)常有香客問我,道長(zhǎng)蔚润,這世上最難降的妖魔是什么磅氨? 我笑而不...
    開封第一講書人閱讀 60,334評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮嫡纠,結(jié)果婚禮上烦租,老公的妹妹穿的比我還像新娘延赌。我一直安慰自己,他們只是感情好叉橱,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,322評(píng)論 6 398
  • 文/花漫 我一把揭開白布挫以。 她就那樣靜靜地躺著,像睡著了一般赏迟。 火紅的嫁衣襯著肌膚如雪屡贺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,895評(píng)論 1 314
  • 那天锌杀,我揣著相機(jī)與錄音甩栈,去河邊找鬼。 笑死糕再,一個(gè)胖子當(dāng)著我的面吹牛量没,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播突想,決...
    沈念sama閱讀 41,300評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼殴蹄,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了猾担?” 一聲冷哼從身側(cè)響起袭灯,我...
    開封第一講書人閱讀 40,264評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绑嘹,沒想到半個(gè)月后稽荧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,784評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡工腋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,870評(píng)論 3 343
  • 正文 我和宋清朗相戀三年姨丈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片擅腰。...
    茶點(diǎn)故事閱讀 40,989評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蟋恬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趁冈,到底是詐尸還是另有隱情歼争,我是刑警寧澤,帶...
    沈念sama閱讀 36,649評(píng)論 5 351
  • 正文 年R本政府宣布渗勘,位于F島的核電站矾飞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏呀邢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,331評(píng)論 3 336
  • 文/蒙蒙 一豹绪、第九天 我趴在偏房一處隱蔽的房頂上張望价淌。 院中可真熱鬧申眼,春花似錦、人聲如沸蝉衣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽病毡。三九已至濒翻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間啦膜,已是汗流浹背有送。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評(píng)論 1 275
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留僧家,地道東北人雀摘。 一個(gè)月前我還...
    沈念sama閱讀 49,452評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像八拱,于是被迫代替她去往敵國(guó)和親阵赠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,995評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容