代碼本色-用編程模擬自然系統(tǒng) 版權(quán)信息
- ISBN:9787115369475
- 條形碼:9787115369475 ; 978-7-115-36947-5
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
代碼本色-用編程模擬自然系統(tǒng) 本書特色
《代碼本色:用編程模擬自然系統(tǒng)》由紐約大學(xué)nature of code課程老師daniel shiffman寫就,是一本借助開源語言processing全面介紹如何用代碼模擬自然世界的學(xué)習(xí)指南。作者從模擬無生命物體、活物、智能系統(tǒng)三個層面,從手工編寫processing代碼到使用現(xiàn)有的物理函數(shù)庫模擬高級而復(fù)雜的行為,利用有趣的事例漸進(jìn)式介紹了算法和模擬方面的高級編程策略和技術(shù)。主要內(nèi)容涉及向量、力、粒子系統(tǒng)、三角函數(shù)、自治智能體、細(xì)胞自動機(jī)、分形、遺傳算法和人工神經(jīng)網(wǎng)絡(luò)。 《代碼本色:用編程模擬自然系統(tǒng)》適合游戲設(shè)計師、好學(xué)的程序員、物理學(xué)愛好者及所有對計算機(jī)模擬和互動編程感興趣的人學(xué)習(xí)參考。
代碼本色-用編程模擬自然系統(tǒng) 內(nèi)容簡介
怎么通過軟件捕捉自然界難以捉摸的演進(jìn)和突變? 理解物理世界背后的數(shù)學(xué)原理對我們創(chuàng)造數(shù)字世界有多大幫助? 本書介紹了用計算機(jī)模擬自然系統(tǒng)涉及的編程策略與技術(shù),涵蓋了基本的數(shù)學(xué)和物理概念,以及可視化地展示模擬結(jié)果所需的高級算法。讀者將從構(gòu)建基本的物理引擎開始,一步一步地學(xué)習(xí)如何創(chuàng)建智能移動的物體和復(fù)雜的系統(tǒng),為進(jìn)一步探索生成設(shè)計奠定基礎(chǔ)。相關(guān)的知識點(diǎn)包括力、三角、分形、細(xì)胞自動機(jī)、自組織和遺傳算法。本書的示例使用基于java的開源語言及開發(fā)環(huán)境processing編寫。本書網(wǎng)站(http://www.natureofcode.com)上的示例是在瀏覽器中通過processing的javascript模式運(yùn)行的。 作為紐約大學(xué)tisch藝術(shù)學(xué)院nature of code課程主講老師,daniel集合了多年開發(fā)和教學(xué)經(jīng)驗(yàn),希望借由此書讓大家真正了解如何用代碼模擬自然現(xiàn)象。
代碼本色-用編程模擬自然系統(tǒng) 目錄
第0章 引言
0.1 隨機(jī)游走
0.2 隨機(jī)游走類
0.3 概率和非均勻分布
0.4 隨機(jī)數(shù)的正態(tài)分布
0.5 自定義分布的隨機(jī)數(shù)
0.6 perlin噪聲(一種更平滑的算法)
0.6.1 映射噪聲
0.6.2 二維噪聲
0.7 前進(jìn)
第1章 向量
1.1 向量
1.2 processing中的向量
1.3 向量的加法
1.4 更多的向量運(yùn)算
1.4.1 向量的減法
1.4.2 向量加減法的運(yùn)算律
1.4.3 向量的乘法
1.4.4 更多的向量運(yùn)算律
1.5 向量的長度
1.6 單位化向量
1.7 向量的運(yùn)動:速度
1.8 向量的運(yùn)動:加速度
1.9 靜態(tài)函數(shù)和非靜態(tài)函數(shù)
1.10 加速度的交互
第2章 力
2.1 力和牛頓運(yùn)動定律
2.1.1 牛頓**運(yùn)動定律
2.1.2 牛頓第三運(yùn)動定律
2.1.3 牛頓第三運(yùn)動定律(從processing的角度表述)
2.2 力和processing的結(jié)合:將牛頓第二運(yùn)動定律作為一個函數(shù)
2.3 力的累加
2.4 處理質(zhì)量
2.5 制造外力
2.6 地球引力和力的建模
2.7 摩擦力
2.8 空氣和流體阻力
2.9 引力
2.10 萬有引(斥)力
第3章 振蕩
3.1 角度
3.2 角運(yùn)動
3.3 三角函數(shù)
3.4 指向運(yùn)動的方向
3.5 極坐標(biāo)系和笛卡兒坐標(biāo)系
3.6 振蕩振幅和周期
3.7 帶有角速度的振蕩
3.8 波
3.9 三角函數(shù)和力:鐘擺
3.10 彈力
第4章 粒子系統(tǒng)
4.1 為什么需要粒子系統(tǒng)
4.2 單個粒子
4.3 使用arraylist
4.4 粒子系統(tǒng)類
4.5 由系統(tǒng)組成的系統(tǒng)
4.6 繼承和多態(tài)的簡介
4.7 繼承基礎(chǔ)
4.8 用繼承實(shí)現(xiàn)粒子類
4.9 多態(tài)基礎(chǔ)
4.10 用多態(tài)實(shí)現(xiàn)粒子系統(tǒng)
4.11 受力作用的粒子系統(tǒng)
4.12 帶排斥對象的粒子系統(tǒng)
4.13 圖像紋理和加法混合
第5章 物理函數(shù)庫
5.1 box2d及其適用性
5.2 獲取processing中的box2d
5.3 box2d基礎(chǔ)
5.3.1 setup
5.3.2 draw
5.3.3 box2d世界的核心元素
5.4 生活在box2d的世界
5.5 創(chuàng)建一個box2d物體
5.5.1 第1步:定義一個物體
5.5.2 第2步:設(shè)置物體的定義
5.5.3 第3步:創(chuàng)建物體
5.5.4 第4步:為物體的初始狀態(tài)設(shè)置其他屬性
5.6 三要素:物體、形狀和夾具
5.6.1 第1步:定義形狀
5.6.2 第2步:創(chuàng)建夾具
5.6.3 第3步:用夾具將形狀連接到物體上
5.7 box2d和processing的結(jié)合
5.7.1 第1步:在主程序(即setup()和draw()函數(shù))中添加box2d
5.7.2 第2步:建立processing盒子對象和box2d物體對象之間的聯(lián)系
5.8 固定的box2d對象
5.9 彎曲的邊界
5.9.1 第1步:定義一個物體
5.9.2 第2步:定義形狀
5.9.3 第3步:配置形狀
5.9.4 第4步:使用夾具將形狀連接到物體上
5.10 復(fù)雜的形狀
5.11 box2d關(guān)節(jié)
5.11.1 步驟1:確保有兩個物體
5.11.2 步驟2:定義關(guān)節(jié)
5.11.3 步驟3:配置關(guān)節(jié)的屬性
5.11.4 步驟4:創(chuàng)建關(guān)節(jié)
5.12 回到力的話題
5.13 碰撞事件
5.13.1 步驟1:contact對象,你能否告訴我哪兩個物體發(fā)生了碰撞
5.13.2 步驟2:夾具對象,你能否告訴我你連接在哪個物體上
5.13.3 步驟3:物體,你能否告訴我你連接在哪個粒子對象上
5.14 小插曲:積分法
5.15 toxiclibs的verlet physics物理庫
5.15.1 獲取toxiclibs
5.15.2 verletphysics的核心元素
5.15.3 toxiclibs中的向量
5.15.4 構(gòu)建toxiclibs的物理世界
5.16 toxiclibs中的粒子和彈簧
5.17 整合代碼:一個簡單的交互式彈簧
5.18 相連的系統(tǒng)i:繩子
5.19 相連的系統(tǒng)ii:力導(dǎo)向圖
5.20 吸引和排斥行為
第6章 自治智能體
6.1 內(nèi)部的力
6.2 車輛和轉(zhuǎn)向
6.3 轉(zhuǎn)向力
6.4 到達(dá)行為
6.5 你的意圖:所需速度
6.6 流場
6.7 點(diǎn)乘
6.8 路徑跟隨
6.9 多段路徑跟隨
6.10 復(fù)雜系統(tǒng)
6.11 群體行為(不要碰到對方)
6.12 結(jié)合
6.13 群集
6.14 算法效率(為什么程序跑得這么慢)
6.15 *后的幾個注意事項(xiàng):優(yōu)化技巧
6.15.1 長度的平方(或距離的平方)
6.15.2 正弦余弦查詢表
6.15.3 創(chuàng)建不必要的pvector對象
第7章 細(xì)胞自動機(jī)
7.1 什么是細(xì)胞自動機(jī)
7.2 初等細(xì)胞自動機(jī)
7.3 如何編寫初等細(xì)胞自動機(jī)
7.4 繪制初等ca
7.5 wolfram分類
7.6 生命游戲
7.7 編寫生命游戲
7.8 面向?qū)ο蟮募?xì)胞實(shí)現(xiàn)
7.9 傳統(tǒng)ca的變化
第8章 分形
8.1 什么是分形
8.2 遞歸
8.3 用遞歸函數(shù)實(shí)現(xiàn)康托爾集
8.4 科赫曲線和arraylist技術(shù)
8.5 樹
8.6 l系統(tǒng)
第9章 代碼的進(jìn)化
9.1 遺傳算法:啟發(fā)自真實(shí)現(xiàn)象
9.2 為什么使用遺傳算法
9.3 達(dá)爾文的自然選擇
9.4 遺傳算法,**部分:創(chuàng)建種群
9.5 遺傳算法,第二部分:選擇
9.6 遺傳算法,第三部分:繁殖
9.7 創(chuàng)建種群的代碼
9.7.1 第1步:初始化種群
9.7.2 第2步:選擇
9.7.3 第3步:繁殖
9.8 遺傳算法:整合代碼
9.9 遺傳算法:創(chuàng)建自己的遺傳算法
9.9.1 第1點(diǎn):更改變量
9.9.2 第2點(diǎn):適應(yīng)度函數(shù)
9.9.3 第3點(diǎn):基因型和表現(xiàn)型
9.10 力的進(jìn)化:智能火箭
9.11 智能火箭:整合代碼
9.12 交互式選擇
9.13 生態(tài)系統(tǒng)模擬
9.13.1 基因型和表現(xiàn)型
9.13.2 選擇和繁殖
第10章 神經(jīng)網(wǎng)絡(luò)
10.1 人工神經(jīng)網(wǎng)絡(luò):導(dǎo)論和應(yīng)用
10.2 感知器
10.3 用感知器進(jìn)行簡單的模式識別
10.4 實(shí)現(xiàn)感知器
10.5 轉(zhuǎn)向感知器
10.6 還記得這是個“網(wǎng)絡(luò)”嗎
10.7 神經(jīng)網(wǎng)絡(luò)圖
10.8 實(shí)現(xiàn)前饋動畫
10.9 結(jié)語
參考文獻(xiàn)
索引
代碼本色-用編程模擬自然系統(tǒng) 相關(guān)資料
“自然現(xiàn)象的模擬技術(shù)可以應(yīng)用于程序式建模(如地形、植物)、程序式動畫(如粒子特效、云層變化)、游戲邏輯(如剛體物理)、人工智能(如非玩家角色的移動)……這本書作為這個領(lǐng)域的入門書籍,使用了簡易的processing編程語言作為例子,非專業(yè)程序員也會很容易理解。”
——葉勁峰,知名游戲程序員,《游戲引擎架構(gòu)》譯者
“我最近讀到一本好書——《代碼本色:用編程模擬自然系統(tǒng)》,它介紹了如何用軟件工具來更好地理解自然界中事物的交互方式。從鐘擺的擺動,到其間粒子不斷交互的粒子系統(tǒng),再到鳥群繁殖的一般模式,shiffman利用動畫和可視化一步步帶我們輕松理解模擬與周圍世界。”
——谷歌軟件工程師luis ibá?ez
“很多編程書讀起來味同嚼蠟,大多數(shù)的編程課程同樣枯燥無趣。這本書卻是趣味橫生。每一章都快速全面地介紹一個有趣主題,而這些主題介紹得還相當(dāng)深入。遺傳算法、神經(jīng)網(wǎng)絡(luò),等等,哇!這些主題通常一個就需要至少一本書的篇幅來講解。本書給出了我目前所知最深入淺出的數(shù)學(xué)解釋。”
——一位從事編程20余年的程序員
“2012年春天,我在nyu itp讀研究生時上過daniel shiffman的nature of code課,漸進(jìn)式學(xué)習(xí)了他講授的全部內(nèi)容,現(xiàn)在重讀這本書更是讓我驚嘆。我會向任何對運(yùn)動、物理、可編程藝術(shù)、游戲等感興趣的人強(qiáng)烈推薦這本書。……總之,這本書絕對值得一讀,所有藝術(shù)家/設(shè)計師/碼農(nóng)的書架上都應(yīng)該有一本!”
——紐約大學(xué)nature of code課程學(xué)生
“很久很久以前,我在director中用lingo做shockwave游戲編程。那時,我經(jīng)常在深夜花費(fèi)大量時間,上網(wǎng)搜尋關(guān)于'轉(zhuǎn)動慣量'之類的文章,最后寫出的代碼經(jīng)常是超級繁瑣而且缺陷很多。……而在閱讀這本書五分鐘之后,我得到的'啊哈,原來應(yīng)該這么實(shí)現(xiàn)'的頓悟,比當(dāng)初五年的鉆研所得到的還要多!”
——資深shockwave 游戲設(shè)計師
代碼本色-用編程模擬自然系統(tǒng) 作者簡介
Daniel Shiffman 紐約大學(xué)Tisch藝術(shù)學(xué)院助理藝術(shù)教授,Nature of Code便是其主講課程之一。多年來,他一直用Processing這門藝術(shù)家友好型開源語言開發(fā)教程、教學(xué)示例和代碼庫,擁有豐富的算法和應(yīng)用教學(xué)經(jīng)驗(yàn)。另外,其著作Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction亦廣受讀者好評。更多信息請訪問shiffman.net和natureofcode.com。
- >
史學(xué)評論
- >
二體千字文
- >
羅曼·羅蘭讀書隨筆-精裝
- >
上帝之肋:男人的真實(shí)旅程
- >
李白與唐代文化
- >
月亮與六便士
- >
莉莉和章魚
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)