1、 通信与导航系列规划教材 游戏开发入门:数学和物理 徐芝琦 主 编 沈学文 张 帆 周忠成 副主编 更多免费电子书搜索雅书 h t t p s:/y a b o o k.o r g 内 容 简 介 本书围绕着游戏开发入门必须掌握的数学和物理知识,展开了非常详细及生动的阐述。本书的每个重要知识点都配备了内容丰富、翔实的游戏及视觉案例,帮助读者从浅到深、由点及面地理解和掌握在游戏开发入门时所需基础数学和物理知识。本书第 1 章至第 6 章,主要介绍了游戏开发入门必备的基础数学知识,从最基础的坐标系、向量和矩阵及线性变换,深入到几何图元及几何检测。本书第 7 章至第 11 章,则围绕着游戏开发入门所
2、需的基础物理知识,从线性运动、牛顿力学,深入到碰撞、旋转运动,最后进行综合应用,即粒子系统基础知识的介绍。本书每一章的代码案例都是基于 Processing 平台设计实现的,操作方便且易学易懂,这些案例详细阐述了在游戏开发时如何用代码思维重新诠释基础理论知识,并佐以生动的可视化结果。作为入门图书,本书着眼于如何将基础的理论知识转化为游戏开发中的关键技术,对于读者来说,是理论指导实践的最佳参考。本书既适用于高等学校计算机及相关专业,也可作为普通读者学习游戏开发时的数学和物理知识应用自学教材和参考书,还适用于读者进行计算思维的训练。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,
3、侵权必究。图书在版编目(CIP)数据 游戏开发入门:数学和物理/徐芝琦主编.北京:电子工业出版社,2017.8 ISBN 978-7-121-31967-9 I游 II徐 III游戏程序程序设计高等学校教材 IVTP317.61 中国版本图书馆 CIP 数据核字(2017)第 140261 号 策划编辑:戴晨辰 责任编辑:戴晨辰 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:7871092 1/16 印张:12.75 字数:318 千字 版 次:2017 年 8 月第 1 版 印 次:2018 年 3 月第 2 次印刷 定 价:38.0
4、0 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:。III前 言 本书是一本专门介绍基础数学和物理知识如何应用于游戏开发的书。数学与物理,是游戏开发中非常重要且不可或缺的基础。尽管我们在中学和大学学习了非常多的数学和物理理论知识,但是这些知识或者公式并不能直接应用于实际的游戏开发中。那么如何把这些知识用起来,尤其是用在游戏开发中呢?相信这本书一定能帮到大家。本书的目的是帮助读者通过学习和训练,用计算思维重新理解,用代码重新
5、演绎基础数学和物理知识。书中结合实例对知识点展开了非常详细及生动的阐述,每个重要知识点都配备了内容丰富、翔实的游戏及视觉案例,以期帮助读者从浅到深、由点及面地理解和掌握游戏开发入门所需的基础数学和物理知识。适合读者 作为入门图书,本书着眼于如何将基础的理论知识转化为游戏开发中的关键技术,对于读者来说,是理论指导实践的最佳参考。本书既适用于高等学校计算机及相关专业,也可作为普通读者学习游戏开发时的数学和物理知识应用自学教材和参考书,还适合读者进行计算思维的训练。阅读本书需要的基础知识 本书不要求读者都具有理工科背景,但是要求读者充分理解并掌握中学阶段学习的基础物理学知识。为了能让读者对本书的数学
6、部分有一个更深入的理解,读者需要掌握一些基本的代数和几何知识,如三角函数、函数和变量、代数运算法则等。另外,尽管本书的实验平台 Processing 并不要求读者有任何编程的基础,但是如果读者能对 Processing 语法有一个基本的了解或者有 Java 基础,动手实践时上手会更快。本书概览 本书第 1 章至第 6 章,主要介绍了游戏开发入门必备的基础数学知识,从最基础的坐标系、向量和矩阵及线性变换,深入到几何图元及几何检测。本书第 7 章至第 11 章,则围绕着游戏开发入门所需的基础物理知识,从线性运动、牛顿力学,深入到碰撞、旋转运动,最后进行综合应用,即粒子系统基础的介绍。本书每一章的代
7、码案例都是基于 Processing 平台来设计实现的,操作方便且易学易懂,这些案例详细阐述了在游戏开发时如何用代码思维重新诠释基础理论知识,并佐以生动的可视化结果。教学资源 本书包含二维码,通过扫描二维码,即可直接浏览设计效果,阅读或下载拓展学习资源。同时,本书还配套相关教学资源包,包括教学课件、案例的完整源代码等,读者可登录华信教育资源网(),注册并免费下载。更多免费电子书搜索雅书 h t t p s:/y a b o o k.o r g IV 致谢 感谢本书的编辑,电子工业出版社戴晨辰,给予了非常有益的评析与建议。感谢沈学文老师不仅提出了非常宝贵的意见,还对本书数学部分的内容进行了详细校
8、对。另外,还要感谢我的同事们,浙江传媒学院新媒体学院的张帆、周忠成、潘瑞芳、俞承杭、杜辉、谢昊、林生佑、张小红、马同庆、舒莲卿、钱归平、莫小梅、荆丽茜,感谢大家对本书的鼓励和支持。感谢我的学生,刘圣男、刘怡东、陈婧、张霖雲,不仅帮助我完成了公式的调整与校对,还为本书提供了很多有益启发。特别感谢我的家人,尤其是我的母亲,为了支持我的工作,在家庭生活中付出了很多心血和精力。本书是集体智慧的结晶,但书中难免存在疏漏或不妥之处,恳请广大读者批评指正。徐芝琦 于浙江传媒学院新媒体学院 V目 录 第 1 章 笛卡儿坐标系和极坐标系 1 1.1 2D 笛卡儿数学 2 1.2 从 2D 到 3D 3 1.3
9、Processing 及其坐标系 4 1.3.1 Processing 4 1.3.2 Processing 中的 2D 和 3D 坐标系 5 1.4 极坐标系 5 1.4.1 2D 极坐标系 6 1.4.2 极坐标和笛卡儿坐标的转换 7 习题 1 8 第 2 章 向量 9 2.1 向量与标量 10 2.2 向量的定义 10 2.2.1 数学定义 10 2.2.2 几何定义 11 2.3 向量的表达 12 2.4 向量与点 13 2.5 向量运算 14 2.5.1 零向量和负向量 14 2.5.2 模长 15 2.5.3 标量与向量的乘法 15 2.5.4 向量的加减法 16 2.5.5 向量
10、点乘 18 2.5.6 向量叉乘 21 2.6 PVector 22 2.6.1 定义与源代码 22 2.6.2 add 函数 23 2.6.3 sub 函数 24 2.6.4 normalize 函数 25 2.6.5 mult 函数 26 2.6.6 dot 函数 27 2.6.7 cross 函数 28 习题 2 29 更多免费电子书搜索雅书 h t t p s:/y a b o o k.o r g VI第 3 章 矩阵运算 30 3.1 矩阵的数学定义 31 3.1.1 矩阵的维数和记法 31 3.1.2 方阵 31 3.1.3 相等矩阵 32 3.1.4 转置矩阵 32 3.1.5
11、矩阵的加减运算 33 3.1.6 标量和矩阵的乘法运算 34 3.1.7 矩阵相乘 35 3.1.8 行列式 36 3.1.9 矩阵的逆 38 3.2 向量和矩阵 39 3.2.1 行向量与列向量 39 3.2.2 向量与矩阵的乘法 40 3.3 矩阵的几何意义 40 3.4 PMatrix 43 习题 3 43 第 4 章 矩阵和仿射变换 45 4.1 变换物体和变换坐标系 46 4.2 齐次坐标和齐次矩阵 47 4.2.1 齐次坐标 47 4.2.2 齐次矩阵 48 4.3 平移 51 4.3.1 2D 和 3D 中的平移 51 4.3.2 translate 函数 52 4.4 缩放 5
12、4 4.4.1 沿坐标轴的缩放 54 4.4.2 沿任意轴的缩放 55 4.4.3 正交投影 55 4.4.4 镜像 57 4.4.5 scale 函数 58 4.5 旋转 59 4.5.1 2D 旋转 60 4.5.2 3D 旋转 62 4.5.3 rotate 函数 65 4.6 组合变换 67 习题 4 70 VII第 5 章 几何图元 71 5.1 直线、线段和射线 72 5.1.1 直线和线段 72 5.1.2 射线和线段 74 5.1.3 line 函数 75 5.2 圆和球 77 5.2.1 定义 77 5.2.2 ellipse 函数 78 5.2.3 sphere 函数 80
13、 5.3 平面 81 5.3.1 定义 81 5.3.2 Processing 中平面的绘制 82 5.4 三角形 84 5.4.1 定义 84 5.4.2 triangle 函数 85 5.5 多边形 86 5.5.1 定义 86 5.5.2 Processing 中多边形的绘制 86 5.6 矩形边界框 91 5.6.1 定义 91 5.6.2 box 函数 92 习题 5 94 第 6 章 几何检测 95 6.1 直线上的最近点 96 6.1.1 2D 直线上的最近点 96 6.1.2 射线上的最近点 98 6.2 圆或球上的最近点 100 6.2.1 原理 100 6.2.2 模拟 1
14、00 6.3 平面上的最近点 102 6.3.1 原理 102 6.3.2 模拟 103 6.4 直线的两两相交 104 6.4.1 2D 中两条直线的相交检测 104 6.4.2 3D 中两条射线的相交检测 105 6.4.3 模拟 106 6.5 直线与圆或球的相交 107 6.5.1 原理 107 更多免费电子书搜索雅书 h t t p s:/y a b o o k.o r g VIII6.5.2 模拟 108 6.6 直线与平面的相交 109 6.6.1 原理 109 6.6.2 模拟 110 6.7 圆或球的两两相交 111 6.7.1 原理 111 6.7.2 模拟 112 6.8
15、 球与平面的相交 112 6.8.1 原理 112 6.8.2 模拟 113 习题 6 114 第 7 章 线性运动 115 7.1 速度 116 7.1.1 平均速度 117 7.1.2 瞬时速度 118 7.2 加速度 119 7.2.1 平均加速度 119 7.2.2 瞬时加速度 120 7.3 运动方程 121 7.3.1 运动方程定义 121 7.3.2 Processing 中的运动实现 123 7.4 抛体运动 126 7.4.1 原理 126 7.4.2 模拟 130 习题 7 134 第 8 章 牛顿力学 136 8.1 牛顿三大定律 137 8.1.1 牛顿第一定律 137
16、 8.1.2 牛顿第二定律 137 8.1.3 牛顿第三定律 141 8.2 力 141 8.2.1 重力与支持力 142 8.2.2 摩擦力 143 8.2.3 风阻力和流体阻力 145 8.2.4 引力 147 习题 8 151 第 9 章 动量和碰撞 153 9.1 与静止物体的碰撞 154 IX9.1.1 轴对齐向量反射 154 9.1.2 非轴对齐向量反射 156 9.2 动量定理 159 9.2.1 动量 159 9.2.2 冲量 160 9.2.3 动量定律 160 9.2.4 动量守恒定律 161 9.3 线性碰撞建模 162 9.3.1 弹性碰撞模型 162 9.3.2 非对心碰撞模型 165 习题 9 169 第 10 章 旋转运动 170 10.1 角运动 171 10.1.1 基本概念 171 10.1.2 模拟 175 10.2 旋转力学 177 10.2.1 基本概念 177 10.2.2 模拟 179 习题 10 180 第 11 章 粒子系统基础 181 11.1 粒子系统的组成 182 11.1.1 功能模块 182 11.1.2 更新循环阶段 183