P2中用来约束刚体运动的还有弹簧Spring。

弹簧除约束两个刚体之间的运动轨迹外,通过damping阻尼和stiffness刚度系数等属性,使得刚体在向目标移动时,

出现类似弹簧的简谐运动。Spring只是抽象的父类,参与运动模拟的是两个子类LinearSpring和RotationalSpring。

1)LinearSpring:
LinearSpring是线性弹簧,对刚体的约束行为和距离关节DistanceConstraint相同,按照指定的距离restLength将两个刚体约束在一起,其中任何一个刚体的位置发生变化,会牵制着另一个刚体运动,以保证两者的间距为distance。在运动过程中,刚体bodyB呈现简谐运动。两个刚体的角度不受约束,可以绕节点旋转。构造函数: 
function LinearSpring(bodyA:Body, bodyB:Body, options:Object) 
其中,bodyA和bodyB为受弹簧约束的两个刚体,options为关节设置选项,可以缺省,P2会按默认值进行设置。选项为: 
·stiffness:弹簧的刚度系数,默认100。 
·damping:弹簧做简谐运动过程中的阻尼系数,默认1 
·restLength:弹簧不受力状态下的长度,默认为worldAnchorA和worldAnchorB间的距离 
·localAnchorA:刚体bodyA本地坐标系下的节点坐标,默认[0,0] 
·localAnchorB:刚体bodyB本地坐标系下的节点坐标,默认[0,0] 
·worldAnchorA:弹簧节点在全局坐标系下的坐标,设置后将自动转换并覆盖localAnchorA 
·worldAnchorB:弹簧节点在全局坐标系下的坐标,设置后将自动转换并覆盖localAnchorB 
2)RotationalSpring:
RotationalSpring是扭力弹簧,对刚体的约束类似齿轮关节,按照指定的restAngle约束两个刚体之间的角度差。当刚体的角度不等于restAngle时,bodyB会进行简谐运动旋转,直至角度差恢复至restAngle。两个刚体的坐标位置不受约束,可以自由移动。 
function LinearSpring(bodyA:Bodt, bodyB:Body, options:Object) 
其中,bodyA和bodyB为受弹簧约束的两个刚体,options为关节设置选项,可以缺省,P2会按默认值进行设置。选项为: 
·restAngle:弹簧不受力无简谐运动下刚体bodyA和bodyB间的角度差,默认为创建扭力弹簧时两个刚体之间的角度差 
·stiffness:弹簧的刚度系数,默认100。 
·damping:弹簧做简谐运动过程中的阻尼系数,默认1

 

p2 弹簧的更多相关文章

  1. Egret中使用P2物理引擎

    游戏中的对象按照物理规律移动,体现重力.引力.反作用力.加速度等物体特性,实现自由落体.摇摆运动.抛物线运动,以及物理碰撞现象的模拟.用于模拟物理碰撞.物理运动的引擎称为物理引擎. 来自瑞典斯德哥尔摩 ...

  2. Unity3D UGUI之ScrollView弹簧效果

    unity3d版本5.3.2p4 UGUI中ScrollView包含Viewport(Content) ScrollView包含脚本.其Movement Type一共3个选项.Elastic就是弹簧效 ...

  3. 网格弹簧质点系统模拟(Spring-Mass System by Fast Method)附源码

    弹簧质点模型的求解方法包括显式欧拉积分和隐式欧拉积分等方法,其中显式欧拉积分求解快速,但积分步长小,两个可视帧之间需要多次积分,而隐式欧拉积分则需要求解线性方程组,但其稳定性好,能够取较大的积分步长. ...

  4. [范例] Firemonkey 弹簧动画

    弹簧动画效果: 不用写任何代码,只需设定下面动画属性: 参考动画曲线: http://monkeystyler.com/guide/Interpolation-and-AnimationType-Il ...

  5. Nexus Repository Manager OSS 代理 p2 源

    用maven管理构建Eclipse RCP项目时,可能会用到p2源: http://download.eclipse.org/releases/mars/ 内网用户肯定希望能通过nexus服务器代理, ...

  6. iOS UIScrollView 无法滚动 没有弹簧效果解决方案

    一般情况下,检查如下: 1.没有设置contentSize或者contentSize的尺寸小于等于该scrollView的尺寸 2.scrollView.enable = NO;(仅仅是让scroll ...

  7. Equinox P2的学习

    product.configuration 点击“Add按钮”并添加以下插件: org.eclipse.equinox.p2.ui org.eclipse.equinox.p2.ui.sdk org. ...

  8. 网格弹簧质点系统模拟(Spring-Mass System by Euler Integration)

    弹簧质点模型是利用牛顿运动定律来模拟物体变形的方法.如下图所示,该模型是一个由m×n个虚拟质点组成的网格,质点之间用无质量的.自然长度不为零的弹簧连接.其连接关系有以下三种: 1.连接质点[i, j] ...

  9. 网格弹簧质点系统模拟(Spring-Mass System by Verlet Integration)附源码

    模拟物体变形最简单的方法就是采用弹簧质点系统(Spring-Mass System),由于模型简单并且实用,它已被广泛应用于服饰.毛发以及弹性固体的动态模拟.对于三角网格而言,弹簧质点系统将网格中的顶 ...

随机推荐

  1. 400 bad Request: JackSon将json串转成List<Object>,异常com.fasterxml.jackson.databind.JsonMappingException

    最近遇到的400, 以前总以为 400 就是参数不匹配造成的,直到今天遇到这个问题 控制台报错如下:  com.fasterxml.jackson.databind.JsonMappingExcept ...

  2. 通过IDEA解决spring配置文件

    来自:https://blog.csdn.net/yanghanxiu/article/details/79366263 (其实尼可以使用springboot 这样就不用配置一大堆东西了喵!) 每次创 ...

  3. js 日期,时间函数 及相关运算大全

    一.在js中如何比较两个时间字符串的大小 方法一: function CompareDate(d1,d2){     return ((new Date(d1.replace(/-/g,"/ ...

  4. ATmega8仿真——键盘扫描的学习

    1.按键的使用特点 按键的应用主要是在按键闭合时改变电路的电平,但是一般情况下按键的开关都是机械弹性触点开关,即利用触点的接触和分离来实现电路的通断,所以在按键按下和释放时往往会产生抖动干扰. 消除抖 ...

  5. (webapp)微信和safri 对于html5 部分功能不兼容,多选或单选下拉框去除边框无效果。

    1 appearance:none; 2 -moz-appearance:none; /* Firefox */ 3 -webkit-appearance:none; /* Safari 和 Chro ...

  6. SpringBoot日记——SpringMvc自动配置与扩展篇

    为了让SpringBoot保持对SpringMVC的全面支持和扩展,而且还要维持SpringBoot不写xml配置的优势,我们需要添加一些简单的配置类即可实现: 通常我们使用的最多的注解是: @Bea ...

  7. Python的with语句(文件打开方式)

    Python文件打开方式(with语句) python编程中对于文件的打开方式主要有以下两种: 1.利用直接性的open("","")函数:(举例说明) try ...

  8. jmeter阶梯加压线程组

    添加阶梯加压线程组路径为鼠标捕获测试计划后,点击鼠标右键->添加->Threads(Users)->jp@gc – Stepping Thread Group(deprecated) ...

  9. 笔记:《机器学习训练秘籍》——吴恩达deeplearningai微信公众号推送文章

    说明 该文为笔者在微信公众号:吴恩达deeplearningai 所推送<机器学习训练秘籍>系列文章的学习笔记,公众号二维码如下,1到15课课程链接点这里 该系列文章主要是吴恩达先生在机器 ...

  10. 天马行空云计算(二)-Hardware&Hypervisor介绍

    天马行空云计算系列一介绍了总体抽象视图,本篇展开Hardware&Hypervisor 介绍.如下是介绍大纲: 本篇将基于上述架构从如下方面介绍说明 Linux设备驱动 因为上述提到的一些硬件 ...