Estou usando o Box2D. Como você pode ver, existem três corpos dinâmicos conectados um ao outro (pense nisso como uma tabela pela vista frontal). LEG1 e LEG2 estão conectados ao corpo estático (é o corpo do solo). Outro corpo dinâmico está caindo sobre a mesa.
Preciso obter a compressão no LEG1 e LEG2 separadamente.
As articulações têm uma GetReactionForce()
função que retorna a b2Vec
, que por sua vez possui Length()
e LengthSqd()
funciona. Isso fornecerá a soma total das forças em qualquer junta tomada. Mas o que eu preciso são forças em corpos individuais que estejam conectados com as articulações. Depois de conectar vários corpos com uma única junta, novamente mostrará a soma das forças que não são úteis. Aqui está o caso de que estou falando:
fonte
Respostas:
Tanto a junta de distância como as juntas de solda têm âncoras locais dentro delas. Cada âncora é relativa a um dos corpos conectados pela junta. Você pode encontrar a compressão de uma articulação individual encontrando a distância entre os dois pontos de ancoragem no espaço do mundo.
Você pode usar estas funções para recuperá-las:
Para transformar esses pontos no espaço do mundo, você pode usar a função em cada corpo chamado:
As juntas de solda (ou juntas de distância) devem usar restrições suaves; caso contrário, o erro será praticamente insignificante.
fonte