PhysicsJS是一个基于JavaScript、模块化、可扩展、易于使用的物理引擎。通过它,你可以很方便地实现各种物理运动效果,比如碰撞、下落等。
PhysicsJS的主要特性如下:
使用AMD(Asynchronous Module Definition,异步模块定义)模式
模块化:只需加载你所需要的库,核心库压缩后只有31K
可扩展性:如果你不喜欢物理碰撞算法,可以更换为其他的
不依赖于特定的渲染器:可以用DOM、HTML5 Canvas以及其他方式来显示效果
支持点、圆、任意多边形等形状的物理运动
支持重力常数、牛顿引力、碰撞、Verlet约束等
简单易用
PhysicsJS网站也给出了一些简单但精彩的演示,其中包括弹跳、碰撞、物体掉落、布料、树等效果,并可以通过点击示例名称后面的code链接来查看该示例的实现代码。
目前PhysicsJS仍在开发中(0.5.1 alpha版本),文档还不太完善。如果感兴趣的话,你可以通过这个链接来了解如何参与贡献。
PhysicsJS官网:http://wellcaffeinated.net/PhysicsJS/
效果演示:http://wellcaffeinated.net/PhysicsJS/examples/
源码:https://github.com/wellcaffeinated/PhysicsJS(采用MIT协议)
此外,类似的物理引擎还有verlet-js,你可以通过该链接来了解。