-
版权信息 & 版权声明
-
内容提要 & 致谢
-
前言 & 本书的目标读者
-
本书的内容
-
第一部分:热身运动
-
第二部分:模拟生命
-
第三部分:图像之乐
-
第四部分:走进三维
-
第五部分:玩转硬件 & 为何选择Python
-
Python的版本 & 本书的代码
-
第一部分 热身运动
-
第1章 解析iTunes播放列表 & 1.1 iTunes播放列表文件剖析
-
1.2 所需模块 & 1.3 代码 & 1.3.1 查找重复
-
1.3.2 提取重复
-
1.3.3 查找多个播放列表中共同的音轨
-
1.3.4 收集统计信息
-
1.3.5 绘制数据
-
1.3.6 命令行选项
-
1.4 完整代码
-
1.5 运行程序 & 1.6 小结 & 1.7 实验
-
第2章 万花尺 & 2.1 参数方程
-
2.1.1 万花尺方程
-
2.1.2 海龟画图
-
2.2 所需模块 & 2.3 代码 & 2.3.1 Spiro构造函数
-
2.3.2 设置函数
-
2.3.3 restart()方法
-
2.3.4 draw()方法
-
2.3.5 创建动画
-
2.3.6 SpiroAnimator类
-
2.3.7 genRandomParams()方法
-
2.3.8 重新启动程序 & 2.3.9 update()方法
-
2.3.10 显示或隐藏光标 & 2.3.11 保存曲线
-
2.3.12 解析命令行参数和初始化
-
2.4 完整代码
-
2.5 运行万花尺动画 & 2.6 小结 & 2.7 实验
-
第二部分 模拟生命
-
第3章 Conway生命游戏
-
3.1 工作原理
-
3.2 所需模块 & 3.3 代码 & 3.3.1 表示网格
-
3.3.2 初始条件
-
3.3.3 边界条件
-
3.3.4 实现规则 & 3.3.5 向程序发送命令行参数
-
3.3.6 初始化模拟
-
3.4 完整代码
-
3.5 运行模拟人生的游戏 & 3.6 小结 & 3.7 实验
-
第4章 用Karplus-Strong算法产生音乐泛音
-
4.1 工作原理 & 4.1.1 模拟
-
4.1.2 创建WAV文件
-
4.1.3 小调五声音阶
-
4.2 所需模块 & 4.3 代码 & 4.3.1 用deque实现环形缓冲区
-
4.3.2 实现Karplus-Strong算法
-
4.3.3 写WAV文件 & 4.3.4 用pygame播放WAV文件
-
4.3.5 main()方法
-
4.4 完整代码
-
4.5 运行拨弦模拟 & 4.6 小结 & 4.7 实验
-
第5章 类鸟群:仿真鸟群 & 5.1 工作原理
-
5.2 所需模块 & 5.3 代码 & 5.3.1 计算类鸟群的位置和速度
-
5.3.2 设置边界条件
-
5.3.3 绘制类鸟群
-
5.3.4 应用类鸟群规则
-
5.3.5 添加个体
-
5.3.6 驱散类鸟群 & 5.3.7 命令行参数
-
5.3.8 Boids类
-
5.4 完整代码
-
5.5 运行类鸟群模拟 & 5.6 小结 & 5.7 实验
-
第三部分 图片之乐
-
第6章 ASCII文本图形 & 6.1 工作原理
-
6.2 所需模块 & 6.3 代码 & 6.3.1 定义灰度等级和网格
-
6.3.2 计算平均亮度 & 6.3.3 从图像生成ASCII内容
-
6.3.4 命令行选项
-
6.3.5 将ASCII文本图形字符串写入文本文件 & 6.4 完整代码
-
6.5 运行ASCII文本图形生成程序 & 6.6 小结 & 6.7 实验
-
第7章 照片马赛克
-
7.1 工作原理 & 7.1.1 分割目标图像 & 7.1.2 平均颜色值
-
7.1.3 匹配图像 & 7.2 所需模块 & 7.3 代码 & 7.3.1 读入小块图像
-
7.3.2 计算输入图像的平均颜色值
-
7.3.3 将目标图像分割成网格
-
7.3.4 寻找小块的最佳匹配
-
7.3.5 创建图像网格
-
7.3.6 创建照片马赛克
-
7.3.7 添加命令行选项
-
7.3.8 控制照片马赛克的大小
-
7.4 完整代码
-
7.5 运行照片马赛克生成程序 & 7.6 小结
-
7.7 实验
-
第8章 三维立体画
-
8.1 工作原理 & 8.1.1 感知三维立体画中的深度
-
8.1.2 深度图
-
8.2 所需模块 & 8.3 代码 & 8.3.1 重复给定的平铺图像
-
8.3.2 从随机圆创建平铺图像
-
8.3.3 创建三维立体画
-
8.3.4 命令行选项
-
8.4 完整代码
-
8.5 运行三维立体画生成程序 & 8.6 小结 & 8.7 实验
-
第四部分 走进三维
-
第9章 理解OpenGL
-
9.1 老式OpenGL
-
9.2 现代OpenGL:三维图形管线 & 9.2.1 几何图元
-
9.2.2 三维变换
-
9.2.3 着色器
-
9.2.4 顶点缓冲区 & 9.2.5 纹理贴图
-
9.2.6 显示OpenGL & 9.3 所需模块 & 9.4 代码
-
9.4.1 创建OpenGL窗口
-
9.4.2 设置回调
-
9.4.3 Scene类
-
9.5 完整代码
-
9.6 运行OpenGL应用程序
-
9.7 小结 & 9.8 实验
-
第10章 粒子系统
-
10.1 工作原理 & 10.1.1 为粒子运动建模 & 10.1.2 设置最大范围
-
10.1.3 渲染粒子 & 10.1.4 利用OpenGL混合来创建更逼真火花
-
10.1.5 使用公告板
-
10.1.6 生成火花动画 & 10.2 所需模块 & 10.3 粒子系统的代码 & 10.3.1 定义粒子的几何形状
-
10.3.2 为粒子定义时间延迟数组
-
10.3.3 设置粒子初始速度
-
10.3.4 创建顶点着色器
-
10.3.5 创建片段着色器
-
10.3.6 渲染
-
10.3.7 Camera类
-
10.4 粒子系统完整代码
-
10.5 盒子代码
-
10.6 主程序代码
-
10.6.1 每步更新这些粒子
-
10.6.2 键盘处理程序
-
10.6.3 管理主程序循环
-
10.7 完整主程序代码
-
10.8 运行程序 & 10.9 小结 & 10.10 实验
-
第11章 体渲染
-
11.1 工作原理 & 11.1.1 数据格式
-
11.1.2 生成光线
-
11.1.3 显示OpenGL窗口 & 11.2 所需模块 & 11.3 项目代码概述
-
11.4 生成三维纹理
-
11.5 完整的三维纹理代码
-
11.6 生成光线
-
11.6.1 定义颜色立方体的几何形状
-
11.6.2 创建帧缓冲区对象
-
11.6.3 渲染立方体的背面
-
11.6.4 渲染立方体的正面 & 11.6.5 渲染整个立方体
-
11.6.6 调整大小处理程序 & 11.7 完整的光线生成代码
-
11.8 体光线投射
-
11.8.1 顶点着色器
-
11.8.2 片段着色器
-
11.9 完整的体光线投射代码
-
11.10 二维切片
-
11.10.1 顶点着色器
-
11.10.2 片段着色器 & 11.10.3 针对二维切片的用户界面
-
11.11 完整的二维切片代码
-
11.12 代码整合
-
11.13 完整的主文件代码
-
11.14 运行程序 & 11.15 小结 & 11.16 实验
-
第五部分 玩转硬件
-
第12章 Arduino简介 & 12.1 Arduino
-
12.2 Arduino生态系统 & 12.2.1 语言 & 12.2.2 IDE & 12.2.3 社区
-
12.2.4 外设 & 12.3 所需模块 & 12.4 搭建感光电路
-
12.4.1 电路工作原理
-
12.4.2 Arduino程序
-
12.4.3 创建实时图表 & 12.5 Python代码
-
12.6 完整的Python代码
-
12.7 运行程序 & 12.8 小结 & 12.9 实验
-
第13章 激光音乐秀
-
13.1 用激光产生图案 & 13.1.1 电机控制
-
13.1.2 快速傅里叶变换
-
13.2 所需模块 & 13.2.1 搭建激光秀
-
13.2.2 连接电机驱动器
-
13.3 Arduino程序 & 13.3.1 配置Arduino数字输出引脚
-
13.3.2 主循环
-
13.3.3 停止电机 & 13.4 Python代码 & 13.4.1 选择音频设备
-
13.4.2 从输入设备读取数据
-
13.4.3 计算数据流的FFT
-
13.4.4 从FFT值提取频率信息 & 13.4.5 将频率转换为电机速度和方向
-
13.4.6 测试电机设置
-
13.4.7 命令行选项
-
13.4.8 手动测试
-
13.5 完整的Python代码
-
13.6 运行程序
-
13.7 小结 & 13.8 实验
-
第14章 基于树莓派的天气监控器
-
14.1 硬件 & 14.1.1 DHT11温湿度传感器 & 14.1.2 树莓派
-
14.1.3 设置树莓派 & 14.2 安装和配置软件
-
14.2.1 操作系统 & 14.2.2 初始配置
-
14.2.3 Wi-Fi设置
-
14.2.4 设置编程环境
-
14.2.5 通过SSH连接 & 14.2.6 Web框架Bottle
-
14.2.7 用flot绘制
-
14.2.8 关闭树莓派 & 14.3 搭建硬件
-
14.4 代码
-
14.4.1 处理传感器数据请求 & 14.4.2 绘制数据
-
14.4.3 update()方法 & 14.4.4 用于LED的JavaScript处理程序
-
14.4.5 添加交互性
-
14.5 完整代码
-
14.6 运行程序 & 14.7 小结
-
14.8 实验 & 附录A 软件安装
-
A.1 安装本书项目的源代码 & A.2 在Windows上安装
-
A.2.1 安装GLFW & A.2.2 为每个模块安装预先构建二进制文件
-
A.2.3 其他选项 & A.3 在OS X上安装 & A.3.1 安装Xcode和MacPorts
-
A.3.2 安装模块
-
A.4 在Linux上安装 & 附录B 基础实用电子学
-
B.1 常用组件 & B.1.1 面包板 & B.1.2 光敏电阻(LDR) & B.1.3 集成电路(IC) & B.1.4 印刷电路板(PCB)
-
B.1.5 电线 & B.1.6 电阻 & B.1.7 发光二极管(LED) & B.1.8 电容器 & B.1.9 二极管 & B.1.10 晶体管
-
B.1.11 电池/电源 & B.2 基本工具 & B.2.1 万用表 & B.2.2 烙铁及配件 & B.2.3 示波器
-
B.3 搭建电路
-
B.4 下一步
-
附录C 树莓派的建议和技巧 & C.1 设置Wi-Fi
-
C.2 检查树莓派是否已连接 & C.3 防止Wi-Fi适配器进入睡眠状态
-
C.4 从树莓派备份代码和数据
-
C.5 备份整个树莓派操作系统 & C.6 利用SSH登录到树莓派
-
C.7 使用树莓派相机 & C.8 在树莓派上启用声音 & C.9 让树莓派说话
-
C.10 让HDMI工作 & C.11 让树莓派移动 & C.12 检查树莓派的硬件版本
-
欢迎来到异步社区! & 异步社区的来历 & 社区里都有什么? & 购买图书 & 下载资源 & 与作译者互动 & 灵活优惠的购书
-
纸电图书组合购买 & 社区里还可以做什么? & 提交勘误 & 写作 & 会议活动早知道 & 加入异步