2014-04-30 43 views
1

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

我使用box2dweb(JavaScript版本)。我为你创建了一个演示,如果你愿意的话可以偷看一下。有两个相同的结构与旋转关节。它们都具有-90度到90度的角度限制。唯一的区别是顶层结构有一个0deg的referenceAngle,而最底层的结构有一个90deg的referenceAngle。是的,我知道他们接受弧度的角度 - 如果你看看源代码,你会看到我使用了转换器功能。

同样,我想在一定的角度开始机构/接头。我相信我可能只是做错了,但如果这是box2dweb的问题,是否有解决方案/替代设置起始角度?或者我没有使用referenceAngle来达到正确的目的?

这里的 - DEMO

回答

1

您可以定义参考角度:这两个机构之间的夹角处的其他功能将考虑关节角度为零。这里的“其他功能”是指处理角度的关节的任何其他功能,例如。 GetJointAngle,SetLimits。

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

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

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

+1

噢好的。所以referenceAngle并不是我想要设置起始角度时所寻找的。那么我怎么去设置一个起伏角度的旋转关节?我试着用SetAsOrientedBox设置角度,但是这只是相对于关节旋转了身体,而不是关节角度本身。 – Brimby

+0

我的观点是,'关节角度'本身并不是真正存在的具体事物。它只是因为两个物体存在,并且它们每个都有一个角度,我们可以比较它们的角度之间的差异。所以影响'关节角度'的唯一方法是设定两个物体的角度。 – iforce2d