书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
目录
5.15 toxiclibs的Verlet Physics物理库
1、toxiclibs
- toxiclibs是一个独立的开源库集合,用于完成与计算机设计相关的任务,它支持Java和Processing。
- toxiclibs的开发者是Karsten "toxi" schmidt(至少目前为止是这样)。
- 为了实现在不同场景下的复用性,toxiclibs的类设计得非常通用,它适用的场景包括:衍生设计、动画、交互/界面设计、数据可视化、数字制造和教学用途等。
本章的剩余部分准备用几个例子介绍toxiclibs中的Verlet物理库;除了Verlet物理库,toxiclibs还包含一系列的函数包,涉及音频、颜色和几何等。
如果你想用Processing处理有关形态和构造的问题,可以看看toxiclibs的几何函数包。
你可以在Open Processing网站
(http://www.openprocessing.org/portal/?userID=4530)
找到相关的示例程序。
2、toxiclibs特性
- toxiclibs是专门为Processing设计的,这是一个好消息。
也就是说,我们将不会碰到Box2D使用过程中会出现的一些问题(多个坐标系统、Box2D、JBox2D和PBox2D)。 - 你只需要下载toxiclibs,将它放在库目录下,就可以开始使用了。
- 它的坐标系统和Processing的坐标系统一样,因此你不需要任何坐标转换。
- 除此之外,toxiclibs还不限于二维世界:所有物理模拟和函数在二维和三维的空间中都是适用的。
3、如何选择物理库
- 是选Box2D,还是选toxiclibs?
- 如果你的需求能归入以下两种类别,这个问题就很容易回答。
1.你的模拟项目涉及碰撞,其中有很多圆、矩形和其他自定义形状的物体,它们之间会相互碰撞,碰撞之后会弹开。
- 在这种情况下,你应该使用Box2D。toxiclibs无法处理物体之间的碰撞。
2.在你的模拟项目中,屏幕上有很多粒子,有时候它们之间相互吸引,有时候相互排斥,有时候用弹簧相连。
- 在这种情况下,toxiclibs是更佳的选择。它比Box2D更容易使用,非常适用于粒子系统。由于韦尔莱积分法的速度优势(忽略了物体之间的碰撞),toxiclibs的性能也很好。