展开全部

主编推荐语

本书介绍了用计算机模拟自然系统涉及的编程策略与技术,涵盖了基本的数学和物理概念,以及可视化地展示模拟结果所需的高级算法。

内容简介

《代码本色:用编程模拟自然系统》由纽约大学Nature of Code课程老师Daniel Shiffman写就,是一本借助开源语言Processing全面介绍如何用代码模拟自然世界的学习指南。作者从模拟无生命物体、活物、智能系统三个层面,从手工编写Processing代码到使用现有的物理函数库模拟高 级而复杂的行为,利用有趣的事例渐进式介绍了算法和模拟方面的高 级编程策略和技术。主要内容涉及向量、力、粒子系统、三角函数、自治智能体、细胞自动机、分形、遗传算法和人工神经网络。

《代码本色:用编程模拟自然系统》适合游戏设计师、好学的程序员、物理学爱好者及所有对计算机模拟和互动编程感兴趣的人学习参考。

目录

  • 版权信息
  • 版权声明
  • 献辞
  • 推荐序
  • 致谢
  • 关于本书的故事
  • Kickstarter
  • 前言
  • 这是一本什么书
  • 关于Processing语言
  • 阅读需知
  • 你用什么阅读本书
  • 本书的故事
  • 第一部分:无生命的物体
  • 第二部分:活物
  • 第三部分:智能
  • 本书的教学大纲
  • 生态系统模拟项目
  • 如何获取在线代码和提交反馈
  • 第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 向量
  • 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 第1步:定义一个物体
  • 5.5.2 第2步:设置物体的定义
  • 5.5.3 第3步:创建物体
  • 5.5.4 第4步:为物体的初始状态设置其他属性
  • 5.6 三要素:物体、形状和夹具
  • 5.6.1 第1步:定义形状
  • 5.6.2 第2步:创建夹具
  • 5.6.3 第3步:用夹具将形状连接到物体上
  • 5.7 Box2D和Processing的结合
  • 5.7.1 第1步:在主程序(即setup()和draw()函数)中添加Box2D
  • 5.7.2 第2步:建立Processing盒子对象和Box2D物体对象之间的联系
  • 5.8 固定的Box2D对象
  • 5.9 弯曲的边界
  • 5.9.1 第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 第1步:初始化种群
  • 9.7.2 第2步:选择
  • 9.7.3 第3步:繁殖
  • 9.8 遗传算法:整合代码
  • 9.9 遗传算法:创建自己的遗传算法
  • 9.9.1 第1点:更改变量
  • 9.9.2 第2点:适应度函数
  • 9.9.3 第3点:基因型和表现型
  • 9.10 力的进化:智能火箭
  • 9.11 智能火箭:整合代码
  • 9.12 交互式选择
  • 9.13 生态系统模拟
  • 9.13.1 基因型和表现型
  • 9.13.2 选择和繁殖
  • 第10章 神经网络
  • 10.1 人工神经网络:导论和应用
  • 10.2 感知器
  • 10.3 用感知器进行简单的模式识别
  • 10.4 实现感知器
  • 10.5 转向感知器
  • 10.6 还记得这是个“网络”吗
  • 10.7 神经网络图
  • 10.8 实现前馈动画
  • 10.9 结语
  • 参考文献
  • 图书
  • 文章
  • 看完了
展开全部

评分及书评

评分不足
1个评分

出版方

人民邮电出版社·图灵出品

图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。