1

私は今少し混乱しています。Box2dのフィクスチャからShapeを取得すると、ボディの位置と角度に関連するポイント(-> getVerticesを使用)が返されます。しかし、形状の実際のポイントの保存データはどこかにあるべきではありませんか?

物事を片付けるために:私は回転している多角形の形を持っています。そして今、私はそれらが実際にあるポリゴンのすべてのポイントを取得したいと思います。使用できる方法はありますか?または、変換を計算する必要がありますが、それは私にはあまり意味がありません。

JavaScriptにbox2dwebを使用しています。

4

2 に答える 2

6

はい、ボディ変換を使用して現在の位置を計算する必要があります。ポイントはローカル(ボディ)座標に保存されるため、ボディ(1ポイント)を移動しても、フィクスチャの多くのポイントすべてを更新する必要はありません。衝突が計算されずに、空の領域を移動するボディを考えてみます...物理エンジンはフィクスチャポイントをまったく必要としません。ポイントをワールド座標に保存すると、ポイントの精度もすぐに失われます。

フィクスチャを描画する場合は、次のようにポイントの現在のワールド位置を取得できます(C ++):

b2Vec2 worldPos = body->GetWorldPoint( localPos );
于 2012-08-10T20:00:34.537 に答える
1

ボディの変換を取得し、それを各頂点に適用します。これにより、ローカル頂点の位置がワールド位置に変換されます。

于 2012-08-10T23:09:54.900 に答える