代码本色:用编程模拟自然系统

怎么通过软件捕捉自然界难以捉摸的演进和突变? 理解物理世界背后的数学原理对我们创造数字世界有多大帮助?
本书介绍了用计算机模拟自然系统涉及的编程策略与技术,涵盖了基本的数学和物理概念,以及可视化地展示模拟结果所需的高级算法。读者将从构建基本的物理引擎开始,一步一步地学习如何创建智能移动的物体和复杂的系统,为进一步探索生成设计奠定基础。相关的知识点包括力、三角、分形、细胞自动机、自组织和遗传算法。

代码本色:用编程模拟自然系统


目前
第0章 引言
  0.1 随机游走
  0.2 随机游走类
  0.3 概念和非均匀分布
  0.4 随机数的正太分布
  0.5 自定义分布的随机数
  0.6 Perlin噪声(一种更平滑的算法)
  0.7 前进
第1章 向量
  1.1 向量
  1.2 Processing中的向量
  1.3 向量的加法
  1.4 更多的向量运算
  1.5 向量的长度
  1.6 单位化向量
  1.7 向量的运动:速度
  1.8 向量的运动:加速度
  1.9 静态函数和非静态函数
第2章 力
  2.1 力和牛顿运动定律
  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.4 生活在Box2D的世界
  5.5 创建一个Box2D物体
  5.6 三素素:物体、开关和夹具
  5.7 Box2D和Processing的结合
  5.8 固定的Box2D对象
  5.9 弯曲的边界
  5.10 复杂的形状
  5.11 Box2D关节
  5.12 回到力的话题
  5.13 碰撞事件
  5.14 小插曲:积分法
  5.15 toxiclibs的VerletPhysics物理库
  5.16 toxiclibs中的粒子和弹簧
  5.17 整合代码:一个简单的交互式弹簧
  5.18 相连的系统1:绳子
  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 最后的几个注意事项:优化技巧
第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.8 遗传算法:整合代码
  9.9 遗传算法:创建自己的遗传算法
  9.10 力的进力:智能火箭
  9.11 智能火箭:整合代码
  9.12 交互式选择
  9.13 生态系统模拟
第10章 神经网络
  10.1 人工神经网络:导论和应用
  10.2 感知器
  10.3 用感知器进行简单的模式识别
  10.4 实现感知器
  10.5 转向感知器
  10.6 还记得这是个“网络”吗
  10.7 神经网络图
  10.8 实现前馈动画
  10.9 结语

英文版:https://natureofcode.com/

- 本文来自网络,如有侵权,请联系本站处理。

2023-03   阅读(3)   评论(0)
 标签: program Processing

涨知识
二进制

二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 。

评论:
相关文章
Processing入门指南

Processing是一款免费开源的互动编程软件,它是一种以数字艺术为背景的程序语言,主要面向计算机程序员和数字艺术家。