Box2d从旋转的身体获得形状点

时间:2012-08-10 11:05:56

标签: javascript box2d

此刻我有点困惑。如果我从Box2d中的夹具中获取我的Shape,它会返回与主体和角度位置相关的点(带有 - > getVertices)。但不应该存在形状的实际点的存储数据吗?

要清理:我有一个旋转的多边形。现在我想得到他们实际所在的所有多边形点。有可用的方法吗?或者我必须计算转换,这对我来说没有多大意义。

我正在使用box2dweb for javascript。

2 个答案:

答案 0 :(得分:6)

是的,你需要使用身体变换来计算当前位置。这些点存储在本地(主体)坐标中,因此移动主体(一个点)不需要更新灯具的所有多个点。考虑一个身体在空白区域移动,没有计算碰撞......物理引擎根本不需要固定点。如果将它们存储在世界坐标中,这些点也会很快失去精确度。

如果您想绘制灯具,您可以获得这样的点的当前世界位置(C ++):

b2Vec2 worldPos = body->GetWorldPoint( localPos );

答案 1 :(得分:1)

您获得正文的变换并将其应用于每个顶点。这会将局部顶点位置转换为世界位置。