此刻我有点困惑。如果我从Box2d中的夹具中获取我的Shape,它会返回与主体和角度位置相关的点(带有 - > getVertices)。但不应该存在形状的实际点的存储数据吗?
要清理:我有一个旋转的多边形。现在我想得到他们实际所在的所有多边形点。有可用的方法吗?或者我必须计算转换,这对我来说没有多大意义。
我正在使用box2dweb for javascript。
答案 0 :(得分:6)
是的,你需要使用身体变换来计算当前位置。这些点存储在本地(主体)坐标中,因此移动主体(一个点)不需要更新灯具的所有多个点。考虑一个身体在空白区域移动,没有计算碰撞......物理引擎根本不需要固定点。如果将它们存储在世界坐标中,这些点也会很快失去精确度。
如果您想绘制灯具,您可以获得这样的点的当前世界位置(C ++):
b2Vec2 worldPos = body->GetWorldPoint( localPos );
答案 1 :(得分:1)
您获得正文的变换并将其应用于每个顶点。这会将局部顶点位置转换为世界位置。