verlet-js:超酷的开源JavaScript物理引擎

来源:互联网 发布:文明5和文明6 知乎 编辑:程序博客网 时间:2024/04/28 17:07
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/