verlet-js是一个使用JavaScript编写的物理引擎,支持粒子系统、距离约束、角度约束等, 通过verlet-js,你可以在应用中实现一些非常酷的、具备物理特性的效果,比如碰撞、滚动、滑动或弹跳。
verlet-js的一些特性如下:
- Simulation(模拟):包含复合实体的根对象,用于在一个场景中驱动实体的所有物理特性和动画效果
- Composites(复合实体):用于场景内的高层次的对象(比如球、连接物、布料等等)
- Particles(粒子系统):空间中的粒子点,用于响应各种操作(重力、拖拽等)
- 约束:将粒子连接在一起,使它们能够互相交流,包括固定(将一个粒子固定到空间中的某个位置)、距离约束(通过一定的直线距离绑定2个粒子)、角度约束(通过一定角度绑定3个粒子)
你可以通过以下链接查看相关示例:
谷歌之前上线了一个
Google Gravity项目,你会发现所有的页面元素纷纷落下,你还可以随意拖动窗口,窗口中的元素也会做出相应的动作,效果相当惊艳,这利用了
Box2D物理引擎(类似于verlet-js)。现在通过verlet-js,你也可以做出类似的效果。
verlet-js源码托管在GitHub上,采用MIT许可证。
项目地址:
https://github.com/subprotocol/verlet-js
附:另一个类似的可拖拽的布料物理效果:
http://codepen.io/stuffit/pen/KrAwx(大幅拖拽或点击右键可有布料撕烂的效果) 或者
http://lonely-pixel.com/