简介
完成条件
前面4章,我们学习了以下内容:
- 学习物理世界中的一些概念,比如什么是向量,什么是力,以及什么是波。
- 理解这些概念背后的数学和算法原理。
- 用面向对象方法实现这些算法。
我们通过这些活动开发了很多运动模拟程序,借此能随心所欲地构建虚拟物理世界(无论是现实的,还是想象的世界)。计算机图形学和编程领域有很多现成代码可用于模拟,只要用谷歌搜索关键词“open-source physics engine”(开源物理引擎),你就能找到丰富的代码库。
如果用现成的代码库就能完成物理模拟,为何还要花时间学习算法的实现过程?
尽管很多物理函数库能提供现成的物理实现(包括一些高级的物理学原理),但在使用它们之前,我们仍需从基础开始学习,原因有很多:
- 第一,如果没有向量、力和三角函数的基础知识作为铺垫,我们就无法读懂库的文档;
- 第二,尽管库会替我们完成数学运算,但它并不会简化代码,后面我们会看到,理解物理函数库的工作原理需要花费很多精力,学会如何使用它也不是一件容易的事;
- 最后,有了这些基础知识,如果你愿意深入探究,完全可以按照自己的意愿开发和模拟可视化程序,最终达成的效果也可以媲美这些物理函数库。
本章致力于讲解两个开源物理库,学习这些库的优缺点,以及在项目中采用它们的原因。
- planck.js(基于Box2D的算法)
- toxiclibs中的VerletPhysics引擎
最后修改: 2022年11月8日 星期二 11:43