Je travaille sur un moteur de physique de corps mou C# 2d et j'ai besoin d'assigner des masses aux sommets d'un objet donné: une liste de sommets (positions x, y), la masse totale de l'objet et le centre de masse.Comment puis-je calculer des masses ponctuelles individuelles?
Le centre de masse est donnée à:
où,
R = center of mass
M = total mass
mj = mass of vertex j
rj = position of vertex j
je besoin d'un algorithme qui peut se rapprocher chaque mj donné R, M et rj.
éditer: Je veux juste préciser que je suis conscient qu'il existe un ensemble infini de solutions. Je cherche un algorithme rapide qui trouve un ensemble de mj (tels qu'ils sont chacun suffisamment proches de mj = M/[nombre de sommets] et où "suffisamment" est défini comme un petit seuil flottant).
De plus, chaque objet consistera d'environ 5 à 35 points.
Vous devez représenter des objets tels que des anneaux creux? –
Non, ce sont des objets solides convexes ou concaves. – zfedoran
Comptez le DoF manquant, attribuez à plusieurs objets une masse un peu plus basse que la moyenne, et tentez de résoudre le système restant ... s'il échoue, marchez au hasard la masse assignée par un peu. Mousser, rincer, répéter. Mais je n'appellerais pas un âne sauvage une approximation. – dmckee