![](/c49/30/10356398908.jpg)
出版社:人民郵電 ISBN:9787115369475 商品編碼:10356398908 開本:16 出版時間:2015-01-01 代碼:99 作者:周晗彬
" 基本信息 - 商品名稱:代碼本色(用編程模擬自然繫統)/圖靈程序設計叢書
- 作者:(美)希夫曼|譯者:周晗彬
- 代碼:99
- 出版社:人民郵電
- ISBN號:9787115369475
其他參考信息 - 出版時間:2015-01-01
- 印刷時間:2015-01-01
- 版次:1
- 印次:1
- 開本:16開
- 包裝:平裝
- 頁數:406
- 字數:653千字
編輯推薦語 《代碼本色(用編程模擬自然繫統)》介紹了用計算機模擬自然繫統涉及的編程策略與技術,涵蓋了基本的數學和物理概念,以及可視化地展示模擬結果所需的**算法。讀者將從構建基本的物理引擎開始,一步一步地學習如何創建智能移動的物體和復雜的繫統,為進一步探索生成設計奠定基礎。相關的知識點包括力、三角、分形、細胞自動機、自組織和遺傳算法。本書的示例使用基於Java的開源語言及開發環境Processing編寫。本書網站(http://www.natureofcode.com)上的示例是在瀏覽器中通過Processing的模式運行的。 作為紐約大學Tisch藝術學院Nature of Code課程主講老師,Daniel Shiffman(希夫曼)集合了多年開發和教學經驗,希望借由此書讓大家真正了解如何用代碼模擬自然現像。 內容提要 《代碼本色(用編程模擬自然繫統)》由紐約大 學Nature of Code課程老師Daniel Shiffman(希夫 曼)寫就,是一本借助開源語言Processing全面介紹 如何用代碼模擬自然世界的學習指南。作者從模擬無 生命物體、活物、智能繫統三個層面,從手工編寫 Processing代碼到使用現有的物理函數庫模擬**而 復雜的行為,利用有趣的事例漸進式介紹了算法和模 擬方面的**編程策略和技術。主要內容涉及向量、 力、粒子繫統、三角函數、自治智能體、細胞自動機 、分形、遺傳算法和人工神經網絡。 本書適合遊戲設計師、好學的程序員、物理學愛 好者及所有對計算機模擬和互動編程感興趣的人學習 參考。 作者簡介 Daniel Shiffman 紐約大學Tisch藝術學院助理藝術教授,Nature of Code便是其主講課程之一。多年來,他一直用Processing這門藝術家友好型開源語言開發教程、教學示例和代碼庫,擁有豐富的算法和應用教學經驗。另外,其著作Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction亦廣受讀者好評。*多信息請訪問shiffman.net和natureofcode.com。 目錄 第0章 引言 0.1 隨機遊走 0.2 隨機遊走類 0.3 概率和非均勻分布 0.4 隨機數的正態分布 0.5 自定義分布的隨機數 0.6 Perlin噪聲(一種*平滑的算法 0.6.1 映射噪聲 0.6.2 二維噪聲 0.7 前進 **章 向量 1.1 向量 1.2 Processing中的向量 1.3 向量的加法 1.4 *多的向量運算 1.4.1 向量的減法 1.4.2 向量加減法的運算律 1.4.3 向量的乘法 1.4.4 *多的向量運算律 1.5 向量的長度 1.6 單位化向量 1.7 向量的運動:速度 1.8 向量的運動:加速度 1.9 靜態函數和非靜態函數 1.10 加速度的交互 第2章 力 2.1 力和牛頓運動定律 2.1.1 牛頓**運動定律 2.1.2 牛頓第三運動定律 2.1.3 牛頓第三運動定律(從Processing的角度表述 2.2 力和Processing的結合:將牛頓第二運動定律作為一個函數 2.3 力的累加 2.4 處理質量 2.5 制造外力 2.6 地球引力和力的建模 2.7 摩擦力 2.8 空氣和流體阻力 2.9 引力 2.10 萬有引(斥)力 第3章 振蕩 3.1 角度 3.2 角運動 3.3 三角函數 3.4 指向運動的方向 3.5 極坐標繫和笛卡兒坐標繫 3.6 振蕩振幅和周期 3.7 帶有角速度的振蕩 3.8 波 3.9 三角函數和力:鐘擺 3.10 彈力 第4章 粒子繫統 4.1 為什麼需要粒子繫統 4.2 單個粒子 4.3 使用ArrayList 4.4 粒子繫統類 4.5 由繫統組成的繫統 4.6 繼承和多態的簡介 4.7 繼承基礎 4.8 用繼承實現粒子類 4.9 多態基礎 4.10 用多態實現粒子繫統 4.11 受力作用的粒子繫統 4.12 帶排斥對像的粒子繫統 4.13 圖像紋理和加法混合 第5章 物理函數庫 5.1 Box2D及其適用性 5.2 獲取Processing中的Box2D 5.3 Box2D基礎 5.3.1 SETUP 5.3.2 DRAW 5.3.3 Box2D世界素 5.4 生活在Box2D的世界 5.5 創建一個Box2D物體 5.5.1 **步:定義一個物體 5.5.2 第2步:設置物體的定義 5.5.3 第3步:創建物體 5.5.4 第4步:為物體的初始狀態設置其他屬性 5.6 三要素:物體、形狀和夾具 5.6.1 **步:定義形狀 5.6.2 第2步:創建夾具 5.6.3 第3步:用夾具將形狀連接到物體上 5.7 Box2D和Processing的結合 5.7.1 **步:在主程序(即setup()和draw()函數)中添加Box2D 5.7.2 第2步:建立Processing盒子對像和Box2D物體對像之間的聯繫 5.8 固定的Box2D對像 5.9 彎曲的邊界 5.9.1 **步:定義一個物體 5.9.2 第2步:定義形狀 5.9.3 第3步:配置形狀 5.9.4 第4步:使用夾具將形狀連接到物體上 5.10 復雜的形狀 5.11 Box2D關節 5.11.1 步驟1:確保有兩個物體 5.11.2 步驟2:定義關節 5.11.3 步驟3:配置關節的屬性 5.11.4 步驟4:創建關節 5.12 回到力的話題 5.13 踫撞事件 5.13.1 步驟1:Contact對像,你能否告訴我哪兩個物體發生了踫撞 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 構建toxiclibs的物理世界 5.16 toxiclibs中的粒子和彈簧 5.17 整合代碼:一個簡單的交互式彈簧 5.18 相連的繫統I:繩子 5.19 相連的繫統II:力導向圖 5.20 吸引和排斥行為 第6章 自治智能體 6.1 內部的力 6.2 車輛和轉向 6.3 轉向力 6.4 到達行為 6.5 你的意圖:所需速度 6.6 流場 6.7 點乘 6.8 路徑跟隨 6.9 多段路徑跟隨 6.10 復雜繫統 6.11 群體行為(不要踫到對方 6.12 結合 6.13 群集 6.14 算法效率(為什麼程序跑得這麼慢 6.15 *後的幾個注意事項:優化技巧 6.15.1 長度的平方(或距離的平方 6.15.2 正弦餘弦查詢表 6.15.3 創建不必要的PVector對像 第7章 細胞自動機 7.1 什麼是細胞自動機 7.2 初等細胞自動機 7.3 如何編寫初等細胞自動機 7.4 繪制初CA
7.5 Wolfram分類 7.6 生命遊戲 7.7 編寫生命遊戲 7.8 面向對像的細胞實現 7.9 傳統CA的變化 第8章 分形 8.1 什麼是分形 8.2 遞歸 8.3 用遞歸函數實現康托爾集 8.4 科赫曲線和ArrayList技術 8.5 樹 8.6 L繫統 第9章 代碼的進化 9.1 遺傳算法:啟發自真實現像 9.2 為什麼使用遺傳算法 9.3 達爾文的自然選擇 9.4 遺傳算法,**部分:創建種群 9.5 遺傳算法,第二部分:選擇 9.6 遺傳算法,第三部分:繁殖 9.7 創建種群的代碼 9.7.1 **步:初始化種群 9.7.2 第2步:選擇 9.7.3 第3步:繁殖 9.8 遺傳算法:整合代碼 9.9 遺傳算法:創建自己的遺傳算法 9.9.1 **點:*改變量 9.9.2 第2點:適應度函數 9.9.3 第3點:基因型和表現型 9.10 力的進化:智能火箭 9.11 智能火箭:整合代碼 9.12 交互式選擇 9.13 生態繫統模擬 9.13.1 基因型和表現型 9.13.2 選擇和繁殖 **0章 神經網絡 10.1 人工神經網絡:導論和應用 10.2 感知器 10.3 用感知器進行簡單的模式識別 10.4 實現感知器 10.5 轉向感知器 10.6 還記得這是個“網絡”嗎 10.7 神經網絡圖 10.8 實現前饋動畫 10.9 結語 參考文獻 索引
" |