封面
版权信息
版权
内容提要
本书第1版获得的赞誉
作者简介
技术审稿人简介
致谢
前言
第一部分 热身
第1章 科赫雪花
1.1 工作原理
1.1.1 使用递归
1.1.2 构建科赫雪花
1.1.3 使用海龟绘图法绘图
1.2 需求
1.3 代码
1.3.1 计算点的坐标
1.3.2 递归
1.3.3 绘制片段
1.3.4 编写函数main()
1.4 运行程序
1.5 小结
1.6 实验
1.7 完整代码
第2章 繁花曲线
2.1 工作原理
2.1.1 理解参数方程
2.1.2 使用海龟绘图法绘制曲线
2.2 需求
2.3 代码
2.3.1 绘制繁花曲线
2.3.2 协调动画
2.3.3 保存曲线
2.3.4 分析命令行参数及初始化
2.4 运行程序
2.5 小结
2.6 实验
2.7 完整代码
第二部分 模拟生命
第3章 康威生命游戏
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 使用PyAudio播放WAV文件
4.3.5 创建音符及分析参数
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 分析参数及实例化Boids类
5.4 运行群体行为模拟程序
5.5 小结
5.6 实验
5.7 完整代码
第三部分 好玩的图形
第6章 文本图形
6.1 工作原理
6.2 需求
6.3 代码
6.3.1 定义灰度标尺和网格
6.3.2 计算平均亮度
6.3.3 根据图像生成ASCII内容
6.3.4 定义命令行参数
6.3.5 将表示文本图形的字符串写入文本文件
6.4 运行文本图形生成程序
6.5 小结
6.6 实验
6.7 完整代码
第7章 照片马赛克
7.1 工作原理
7.1.1 分割目标图像
7.1.2 计算平均RGB值
7.1.3 匹配图像
7.2 需求
7.3 代码
7.3.1 读入输入图像
7.3.2 计算图像的平均RGB值
7.3.3 将目标图像分割为网格
7.3.4 查找与分片最匹配的图像
7.3.5 创建图像网格
7.3.6 创建照片马赛克
7.3.7 编写函数main()
7.4 运行照片马赛克生成程序
7.5 小结
7.6 实验
7.7 完整代码
第8章 裸眼立体画
8.1 工作原理
8.1.1 感知裸眼立体画中的深度
8.1.2 使用深度图
8.1.3 平移像素
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.1.1 图元
9.1.2 三维变换
9.1.3 着色器
9.1.4 顶点缓存
9.1.5 纹理映射
9.1.6 OpenGL上下文
9.2 需求
9.3 代码
9.3.1 RenderWindow类
9.3.2 Scene类
9.3.3 辅助函数
9.4 运行OpenGL应用程序
9.5 小结
9.6 实验
9.7 完整代码
第10章 圆环面上的康威生命游戏
10.1 工作原理
10.1.1 计算顶点
10.1.2 计算光照法线
10.1.3 渲染
10.1.4 给三角形带着色
10.1.5 控制相机
10.1.6 将网格映射到圆环面
10.2 需求
10.3 代码
10.3.1 渲染圆环面
10.3.2 实现康威生命游戏模拟
10.3.3 创建相机
10.3.4 整合代码
10.4 运行三维版康威生命游戏模拟
10.5 小结
10.6 实验
10.7 完整的圆环面渲染代码
10.8 完整的康威生命游戏模拟代码
10.9 完整的相机创建代码
10.10 RenderWindow类的完整代码
第11章 体渲染
11.1 工作原理
11.1.1 数据格式
11.1.2 生成光线
11.1.3 OpenGL窗口
11.2 需求
11.3 代码
11.3.1 生成三维纹理
11.3.2 生成光线
11.3.3 实现体光线投射算法
11.3.4 显示二维切片
11.3.5 整合代码
11.4 运行程序
11.5 小结
11.6 实验
11.7 完整的三维纹理生成代码
11.8 完整的光线生成代码
11.9 完整的体光线投射算法代码
11.10 显示二维切片的完整代码
11.11 完整的主文件代码
第五部分 玩转硬件
第12章 在树莓派Pico上实现Karplus-Strong算法
12.1 工作原理
12.1.1 输入和输出
12.1.2 I2S协议
12.2 需求
12.2.1 组装硬件
12.2.2 安装MicroPython
12.3 代码
12.3.1 设置
12.3.2 生成音符
12.3.3 播放音频
12.3.4 编写函数main()
12.4 运行程序
12.5 小结
12.6 实验
12.7 完整代码
第13章 树莓派激光音乐秀
13.1 工作原理
13.1.1 使用激光生成图案
13.1.2 使用快速傅里叶变换分析音频
13.2 需求
13.2.1 在树莓派上安装系统和软件
13.2.2 搭建激光秀装置
13.2.3 连接硬件
13.3 代码
13.3.1 设置
13.3.2 控制硬件
13.3.3 处理音频
13.3.4 测试电机
13.3.5 整合代码
13.4 运行激光音乐秀程序
13.5 小结
13.6 实验
13.7 完整代码
第14章 物联网花园
14.1 工作原理
14.1.1 低功耗蓝牙
14.1.2 Web框架Bottle
14.1.3 SQLite数据库
14.2 需求
14.2.1 在树莓派上安装系统和软件
14.2.2 安装CircuitPython
14.2.3 设置IFTTT服务
14.3 代码
14.3.1 CircuitPython代码
14.3.2 BLE扫描器代码
14.3.3 Web服务器代码
14.3.4 主程序文件
14.4 运行物联网花园程序
14.5 小结
14.6 实验
14.7 完整的CircuitPython代码
14.8 完整的BLE扫描器代码
14.9 完整的Python Web服务器代码
14.10 完整的主程序代码
第15章 树莓派音频机器学习
15.1 机器学习概述
15.2 工作原理
15.2.1 声谱图
15.2.2 在树莓派上推断
15.3 需求
15.4 代码
15.4.1 在Colab中训练模型
15.4.2 在树莓派上使用模型
15.5 运行语音识别系统
15.6 小结
15.7 实验
15.8 完整代码
附录A 安装Python
A.1 获取本书项目的源代码
A.2 安装Python和Python模块
A.2.1 Windows
A.2.2 macOS
A.2.3 Linux
附录B 设置树莓派
B.1 安装操作系统
B.2 测试连接
B.3 使用SSH登录树莓派
B.4 安装Python模块
B.5 远程使用Visual Studio Code
更新时间:2024-07-24 11:10:49