2011-10-18 2 views
1

Je veux coder un petit jeu, traitant des polices et des lettres. Je veux les faire bouger dans l'espace 2D et j'utilise box2dweb comme moteur physique, ce qui est en train de faire un très bon travail. En ce moment, tout ce que je suis en train de lutter, c'est le problème de la construction de la b2Body pour une lettre. Box2d ne peut gérer que des formes primitives et convexes et pour construire une hitbox plus complexe, je dois en combiner certaines. Dans l'image j'ai essayé de comprendre ce que je voudrais atteindre, un algorithme, qui prend un svg-path d'une lettre et génère une série de b2shapes qui représentent la hitbox.générer b2Body pour une lettre

capital letter A in Black, a series of b2Shapes in blue, with green stroke

Dans l'ensemble je ne sais pas où je pourrais trouver des informations à ce sujet, s'il y a une bibliothèque qui est capable de le faire. Même si cette bibliothèque n'est pas disponible en Javascript, je pourrais faire le travail sur le serveur. Je sais qu'il y a paper.js et raphalel, quelques bibliothèques de vecteurs intelligentes, mais je n'ai trouvé aucun indice pour résoudre ce problème. Je serais heureux pour toute sorte d'aide, de liens vers des ressources, ou le nom correct du problème au sens mathématique.

Salutations et merci à l'avance ... Philipp

Répondre

0

Je veux juste laisser le résultat d'une enquête ici, peut-être que quelqu'un va l'aider. L'idée initiale est basée sur «la coupe de l'oreille», «l'abattage de l'oreille» ou «la culture de l'oreille». Une démo here décrira ceci. Mais l'algorithme, qui produit moins, mais box2d polygones appropriés est montré dans une démo here. L'idée est de fusionner autant de triangles que possible, tant qu'ils sont convexes et dans ce cas, n'ont pas plus de huit arêtes. Un triangle est approprié pour être ajouté à un polygone, si on peut trouver deux points dans le triangle et deux points adjectifs dans le polygone, avec les mêmes coordonnées x et y.