平移关节 PrismaticJoint
Author : Charley
关节的通用属性(编辑关节连线、绑定另一刚体、设置锚点、振动频率、阻尼、碰撞连接刚体)请查看 2D物理编辑总览 中关节通用功能章节。
平移关节也被称为棱柱关节,其中"棱柱关节"是从Box2D中的英文名称"Prismatic Joint"直译而来,源自于棱柱两侧面平行的几何特性。而"平移关节"这个名称则更加直观地描述了关节允许的物理运动——那就是沿特定轴线的直线移动。
此外,在理解它的工作原理时,平移关节可以类比于马达中的线性推力,相对于旋转关节(RevoluteJoint)代表马达中的角扭矩。这样的对比有助于我们了解不同类型的关节及其功能:旋转关节允许刚体围绕某个点进行旋转,就像马达产生的角动作;平移关节则限制刚体沿着一个方向进行线性平移,类似于马达施加的直线动作。
因此,尽管平移关节具备两个刚体间只能平行运动及沿着特定直线方向进行平移这两个特性,我们更倾向于使用"平移关节"这个名称,因为它更加形象地体现了该关节的主要作用。
一、平移方向angle
平移方向是指该关节只能沿着哪个方向进行平移,单位是角度。例如0度表示水平向右方向,90度表示垂直向下的方向,180度表示水平向左的方向,采用顺时针的角度作为方向,以此类推。效果如动图1所示:

(动图1)
二、启用马达enableMotor
在勾选启用马达后,有两个关联的属性,马达速度motorSpeed、最大力maxMotorForce,如图2所示:

(图2)
最大力通常不用设置,采用默认值即可,该属性的作用与前文中的马达关节一致。
关键属性是马达速度,这将直接影响移动的速度与方向。马达速度属性的绝对值越大,移动的速度也就越快,通常设置为正值,如果设置负值,则会向相反方向移动。
动图3中对比了不同速度与方向的效果:

(动图3)
三、平移限制enableLimit
在勾选平移限制后,有两个关联的属性,平移下限lowerTranslation、平移上限upperTranslation,如图4所示:

(图4)
与旋转关节类似,平移范围也有下限和上限,限制的值以像素为单位。
平移下限lowerTranslation是指移动的最短距离是离锚点anchor有多远。移动的时候会以下限为起点。
平移上限upperTranslation是指移动的最长距离可以离锚点anchor有多远,达到限制后,无论设置多大的马达力,移动时,也不会超出上限范围。
下限与上限,即便没有启用马达,也会受这个限制影响。
下限与上限的对比效果如动图5所示。

(动图5)