Box2d:旋转关节的起始角度

时间:2014-04-30 17:07:42

标签: box2d box2dweb

我的印象是,要在旋转关节的指定角度开始一个身体,你需要设置referenceAngle。这不适合我。改变referenceAngle时唯一改变的是限制的位置。

我正在使用box2dweb(javascript版本)。如果你这么好看,我会为你创建一个演示。有两个相同的结构与旋转关节。它们都具有-90deg到90deg的angleLimits。唯一的区别是顶部结构的referenceAngle为0deg,而底部结构的referenceAngle为90deg。是的,我知道他们接受弧度的角度 - 如果你看一下你会看到我使用转换器功能。

同样,我试图以某个角度开始身体/关节。我确定我可能只是做错了,但如果这是box2dweb的问题,是否有解决方法/替代设置起始角度?或者我没有将referenceAngle用于正确的目的?

这里是 - DEMO

1 个答案:

答案 0 :(得分:1)

您可以将参考角定义为:两个实体之间的角度,其他函数将关节角度视为零。这里'其他功能'是指处理角度的关节的任何其他功能,例如。 GetJointAngle,SetLimits。

只需要有一些标准基准来衡量,就像我们说珠穆朗玛峰高达8848米时,我们暗示它比海平面高8848米,因为海平面是长期存在的传统认为​​高度测量为零。

例如,假设你和我都站在朝北。我们之间的角度为零,所以如果你问任何人GetJointAngle对我们来说他们会说零。如果我转向西方,他们会说GetJointAngle现在是90.但是如果每个人都同意,当我面向西方时,我们会称之为零......在那种情况下,当我面向西方时会说零,当我再次面向北方时,他们会说-90。

显然零参考角度是最直观的情况,我从未发现任何需要将其设置为其他任何东西。事实上,我觉得它可能完全被排除在联合def结构之外。