Hay dos tipos de formas y tres formas de hacerlas en Box2D.
Un b2CircleShape siempre tiene su centro en el centro del círculo. Si desea hacer un "círculo asimétrico", debe fijar el círculo a otro objeto (por ejemplo, un círculo pequeño dentro de él) con una articulación.
Un b2PolygonShape se puede inicializar con SetAsBox. SetAsBox por defecto coloca el origen en el medio del rectángulo, pero puede pasar un b2Vec2 como el tercer argumento para colocar el origen en otro lugar.
Una b2PolygonShape que no es una caja se inicializa con el origen en las coordenadas locales 0,0. Para hacer una forma que se extienda solo en una dirección, por ejemplo, hacia la derecha y hacia arriba, simplemente especifique coordenadas como (0, 0), (0, 5), (5, 5), (5, 0), construyendo la forma solo a lo largo de coordenadas locales que se mueven hacia arriba y hacia la derecha (y en orden de bobinado CCW).
Recuerde, el origen de la forma siempre es una coordenada local (0, 0). Si intentas pensar en ello como "mover el origen", solo te vas a confundir: lo que estás haciendo es compensar los otros vértices en relación con el origen.